Первый шаг, с чего начинается сео оптимизация сайта на WordPress — придание нашим ссылка читаемого вида. Поисковые алгоритмы ценят когда страницы сайта содержат в своей URL не набор цифр указывающих на идентификатор статьи, а название самой статьи. К тому же, реальным посетителям так же удобнее взаимодействовать с сайтом, у которого ссылки user friendly.
По умолчанию ссылки в WordPress имеют структуру https://waky.ru/?p=123 где p указывает на идентификационный номер страницы.
Мы же хотим что-то более читаемое, например https://waky.ru/sample-post/ где вместо цифр будет использовано название нашей статьи.
Сделать это не сложно, в вордпрессе есть специальный инструмент — постоянные ссылки (permalink). В админке идем в Настройки -> Постоянные ссылки. Тут меняем с Простые на Название записи. Сохраняем изменения. Теперь в блоге будет использоваться дружелюбные SEO ссылки. Можете увидеть, как поменялись ссылки на главной странице.
Однако, если мы попробуем открыть любую из красивых ссылок нас ждет ошибка 404 и сообщение, что страница не найдена. Нам нужно добавить в конфигурацию нашего NGINX следующие строки:location / {
try_files $uri $uri/ /index.php?$args;
index index.php;
}
Это решит проблему переадресации, чтобы постоянные ссылки сайта соответствовали правильным страницам на WordPress. Полностью секция server для нашего https домена выглядит так:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name waky.ru;
server_name www.waky.ru;
root /usr/share/nginx/waky.ru;
index index.php;
ssl_certificate "/etc/letsencrypt/live/waky.ru/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/waky.ru/privkey.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ /wp-login.php {
auth_basic "Restricted area";
auth_basic_user_file /usr/share/nginx/.htpasswd;
}
location / {
try_files $uri $uri/ /index.php?$args;
index index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Перезапускаем NGINX и проверяем что все работает:nginx -s reload