.Htaccess Dosyası ile Web Sitenizi Optimize Edin

25 / 100 SEO Score

Web sitenizin hızlı yüklenmesi, ziyaretçiler için çok önemlidir bunu biliyoruz. Bu kılavuz, optimizasyonun siz veya web sitesi geliştiriciniz tarafından görülebilmesi ve test edilebilmesi için web sitenizi ve yükleme hızınızı gözden geçirmenize yardımcı olur.

Ayrıca, kullanmanız için birçok seçenek ve bir .htaccess dosyası kullanarak web sitenizi optimize etmenin yaygın yollarını keşfedeceğiz. Bu, Apache web sunucusu kullanan paylaşılan barındırma, iş barındırma, cPanel istemcileri ve VPS, Cloud ve Dedicated Server istemcileri için tasarlanmıştır.

Bu kılavuz için, Google Chrome’un yerleşik araçlarını ve bir Apache web sunucusu için .htaccess’i kullanarak başlayacağız.

.Htaccess Dosyası Oluşturun

Yapılacak ilk şey .htaccess dosyanızı oluşturmaktır. Eğer sitenizin kök dizininde yoksa bir .htaccess dosyası oluşturun. Varsa Bu kılavuza devam etmeden önce, web sitenizin yüklenmemesi veya herhangi bir sorununuz olması durumunda bu dosyanın geri yüklenebilmesini sağlamak için dosyanızın yedeğini almanız önemlidir.

Google Chrome DevTools

# 1 Web sitenizi ziyaret edin ve Windows’ta F12 ile Google Dev Tools’u veya klavyenizde Ctrl + Shift + I’yi başlatın. Mac kullanıyorsanız, Cmd + Opt + I tuşlarını kullanabilirsiniz. Ya da, web sayfasını sağ tıklatıp Ağ sekmesini tıklatarak Öğeyi Denetle’yi seçin.

# 2 Önbelleği devre dışı bırak kutusunu işaretleyin

.Htaccess Dosyası ile Web Sitenizi Optimize Edin

# 3 Bu aynı menüden Ağ’a tıklayın ve sayfayı yeniden yükleyin. Burada sonuçlar ve yükleme süresi ekranın altında gösterilecektir

.Htaccess Dosyası ile Web Sitenizi Optimize Edin

Web sayfasını yenileyin ve yukarıdaki resimde gösterildiği gibi yükleme süresini not edin. Ayrıca 200 ms’nin altında olması için ideal olan Aşağıdaki resim, bunun örnek olarak 120 ms olduğunu göstermektedir:.Htaccess Dosyası ile Web Sitenizi Optimize Edin

 

Web Sitesi Optimizasyonu

Önbellek Kullan

aşağıdaki kodları .htaccess dosyanıza ekleyerek başlayalım.

# BEGIN EXPIRES
ExpiresActive On
ExpiresDefault "access plus 10 days"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/plain "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-icon "access plus 1 year"
# END EXPIRES

Mod Deflate Kullanarak İçeriği Sıkıştır

# COMPRESSION
# BEGIN DEFLATE COMPRESSION
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml

# END DEFLATE COMPRESSION
# END COMPRESSION

Gzip Sıkıştırma

# BEGIN GZIP
# BEGIN GZIP COMPRESSION

mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

# END GZIP COMPRESSION
# END GZIP

Önbelleğe alma (Caching)

# BEGIN Cache-Control Headers

<filesMatch ".(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"

<filesMatch ".(css)$">
Header set Cache-Control "public"

<filesMatch ".(js)$">
Header set Cache-Control "private"

<filesMatch ".(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"


# END Cache-Control Headers
#END CACHE CONTROL

Takip eden Eğik Çizgi (Force Trailing Slash)

# FORCE TRAILING SLASH

RewriteCond %{REQUEST_URI} /+[^.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

# END FORCE TRAILING SLASH

Hotlinking’i Önleme

# PREVENT HOTLINKING
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+.)?siteniz.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ /hotlinksnotpermitted.jpg [L]
# END PREVENT HOTLINKING

burada Alan adınızı gerçek alan adı URL’niz ve hotlinksnotpermitted.jpg ile değiştirin
Web Sitesi Ziyaretçilerini Mobil Siteye Yönlendirme:

# REDIRECT MOBILE DEVICES
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
#------------- The line below excludes the iPad
RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$
#-------------
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] #*SEE NOTE BELOW
RewriteRule ^(.*)$ /m/ [L,R=302]
# END REDIRECT MOBILE DEVICES

WordPress Blogunuzda SPAM’ı Durdurun

# STOP SPAM ON WORDPRESS BLOG
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*siteniz.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

# END STOP SPAM ON WORDPRESS BLOG

burada sitenizi yazmayı unutmayın wpip. şeklinde
Redirect Feeds

# REDIRECT DIFFERENT FEEDS TO A SINGLE FORMAT

RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://wpip.com/feed/
RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://wpip.com/comments/feed/

# END REDIRECT DIFFERENT FEEDS TO A SINGLE FORMAT

Web Sitenizi HTML5 Videoları için Yapılandırma

# CONFIGURE YOUR WEBSITE FOR HTML5 VIDEOS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
AddType application/x-shockwave-flash swf
# END CONFIGURE YOUR WEBSITE FOR HTML5 VIDEOS

PHP Hatalarını Hata Günlüğüne Kaydetme

# LOG PHP errors INTO ~/public_html/php_error.log
# display no errs to user
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log ~/public_html/php_error.log
# END LOG PHP errors INTO ~/public_html/php_error.log

Alan adınızı gerçek alan adı URL’nizle ve ~ / public_html / php_error.log ile günlük dosyanızın yerini değiştirmeyi unutmayın.
PHP Inside JavaScript Dosyalarını Çalıştırma

# RUN PHP INSIDE JAVASCRIPT FILES
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch ".(js|php)$">
SetHandler application/x-httpd-php

# RUN PHP INSIDE JAVASCRIPT FILES

Kullanıcı IP’lerini Engelle

#BLOCKING USERS IP
order allow,deny
deny from 123.45.6.7
deny from 0.1.2.3
allow from all
#END BLOCKING USERS IP

Dosyaların Dizin Listelenmesini Önleme

#PREVENT DIRECTORY LISTING
IndexIgnore *
#END PREVENT DIRECTORY LISTING

Özel Hata Belgesi

# ERROR DOCUMENT
ErrorDocument code /directory/filename.ext
ErrorDocument 404 /errors/lostandfound.html
# END ERROR DOCUMENT

WWW olmayan domaininizi WWW URL’sine yeniden yönlendir

# REDIRECT NON WWW URL TO WWW URL
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^wpip.com
RewriteRule (.*) https://www.wpip.com/$1 [R=301,L]
# END REDIRECT NON WWW URL TO WWW URL

Basit URL Yönlendirme

Redirect /olddirectory/oldfile.html https://wpip.net/newfile.html

Web Sitesini https’ye yönlendir

#Force SSL without www
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://wpip.net/$1 [R,L]
#Force SSL with www
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.wpip.net/$1 [R,L]

Zararlı botları engelleyin

# Kötü bot engelleyici
SetEnvIfNoCase User-Agent "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Xenu|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot
SetEnvIfNoCase Referer "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Xenu|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot
Deny from env=bad_bot

# Kötü bot engelleyici

404 Yönlendirme

RewriteEngine On
ErrorDocument 404 /404.php

Htaccess ile yapabileceklerinizin tamamını Apache Htaccess sitesinden bakabilirsiniz. Ayrıca diğer bir makalem de wordpress optimizasyon‘u okumanızı öneririm.

Ali Çömez

Ben Ali Çömez (Slaweally) Uzun yıllar internet sektöründe zaman geçirdikten sonra tecrübelerimi sizinle paylaşmak için bu bloğu açtım, umarım faydalı olur.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir