Kayaçların geçirgenliği, sahip oldukları birincil ve ikincil gözenekliliklerin bir sonucudur. Gözenekliliklerin büyüklüğü, gözeneklerin birbirleri ile bağlantılılık oranı, ve porozite gibi etkenlerin hepsi kayaçların geçirgenliğini için önemlidir. Kırıntılı sedimanter kayaçlar, konsolide olmamış çökellerinkine benzer birincil geçirgenlik karakterine sahiptirler. Fakat diyajenez, çimentolanma ve sıkışma yoluyla birbirine yakın gözenekleri bağlayan boğazların boyutunu azaltabilir. Bu, kırıntılı sedimanter kayacın birincil porozitesinde büyük bir etki yapmaksızın, kayacın geçirgenliği önemli derecede azaltabilir. Birincil geçirgenlik ayrıca tabaka düzlemleri gibi sedimanter yapılardan da kaynaklanabilir.
Kristalen kayalar (ister magmatik, metamorfik yada kimyasal orijinli olsun) düşük porozitilerine ek olarak düşük birincil geçirgenliklere sahiptirler. İç içe geçmiş kristal yapıları arasında çok sınırlı boşluklar yer alır. Dolayısıyla, akışkanlar bu boşluklar boyunca kolaylıkla hareket edemezler. Volkanik kayaçlar bunun dışındadır ve yüksek birincil geçirgenliğe sahip olabilirler. Eğer gözenekler geniş ve birbirleri ile iyi derecede bağlantılı ise, sonucunda yüksek geçirgenlik mevcut olabilir.
İkincil geçirgenlik kayaçlarda kırılma yoluyla gelişebilir. Geçirgenlikteki artış başlangıçta çatlak açıklıklarının sayısı ve büyüklüğünden kaynaklanmaktadır. Su çatlaklar içerisinde hareket ederken, kayacı oluşturan mineraller çözünebilir ve çatlaklar genişler. Bu kayacın geçirgenliğini artırır.
Mağmatik kayalar solüsyon genişlemesinden çok etkilenmelerine rağmen, kimyasal olarak çökelmiş kayaçlar (kireçtaşı, dolomit, jips, tuz) solüsyon genişlemesine en fazla yatkındırlar. Sedimanter kayaçların tabaka düzlemleri arasındaki boşluklar solüsyonlar vasıtasıyla ayrıca genişleyebilir. Ayrışma, kayaçların geçirgenliğinde bir artışa sebep olabilir. Kayaç bozuşurken yada parçalanırken, gözeneklerin büyüklüğü ve sayısı, çatlaklar ve eklemler artabilir.