12 причин, почему Google и Яндекс не индексирует ваш сайт

В данной статье мы рассмотрим 12 причин, по которым у вашего сайта могут быть проблемы с индексацией в поисковых системах Google и Яндекс.

Переходим к причинам:

1. Google и Яндекс пока не нашел ваш сайт

Такое случается в том случае, если вы только что выложили свой сайт и ничего не делали для того, чтобы поисковые системы его заметили.

В таком случае не стоит ожидать быстрой индексации. Но это легко можно поправить.

Для этого нужно сделать:

  • Добавить сайт в поисковые системы (Add url)
  • Добавить сайт в Google и Яндекс вебмастер

Статьи в тему:

— Как добавить сайт в поисковые системы

— Google Webmaster Tools

— Добавляем сайт в Яндекс Вебмастер

После чего, нужно немного подождать и ваш сайт должен проиндесироваться. Обычно это занимает от пару часов, до пару дней и более.

 2. Сайт или страницы закрыты в robots.txt

Это часто бывает причиной, которую не учитывают разработчики и выкатывают сайт закрытым от индексации в файле robots.txt. Но такое легко можно поправить.

Для начала читаем статью: Robots.txt – инструкция для SEO

Если у вас не много технических разделов, то можно обойтись и таким robots.txt:

robots.txt

Но если на сайте нужно много чего закрывать, то:

  • читаем статью по ссылке выше
  • закрываем только те разделы, что не нужно индексировать
  • оставляем для индексации все остальное

Тогда все с вашим сайтом должно быть нормально.

 3. Включены приватные настройки

Если вы используете систему управления сайта WordPress, то по умолчанию могут стоять приватные настройки. Это действительно может быть причиной того, что сайт до сих пор не проиндексирован.

Для этого нужно зайти в:

  • Настройки
  • Чтение
  • Видимость для поисковых систем
  • Убрать галочку

Включены приватные настройки WordPress

Многие забывают убрать эту галочку и потом не могут понять, в чем же причина не индексации сайта.

4. Сайт закрыт от индексации в noindex в мета тегах

Индексацию контента или страницы так же можно закрыть с помощью мета тега. Выглядит он так:

<meta name=»robots» content=»no index, nofollow»>

Все что нужно:

  • проверить код на наличие такого тега и что в нем прописано
  • убрать строку кода
  • или просто сделать follow и index

Пример:

meta name robots

Из нашей практики встречались и такие сайты, на которых это было причиной индексации.

 5. Ошибки сканирования

Если возникает много ошибок при сканировании, то поисковый бот просто может не дойти до нужных страниц.

Чтобы это проверить:

  • Заходим в Google Webmaster Tools
  • Сканирование
  • Ошибки сканирования

Ошибки сканирования

Если есть какие-то критические ошибки. Просто нужно их исправить и все будет хорошо.

6. Сайт заблокирован в .htaccess

В этом файле обычно прописывается 301 редирект. Но в нем, так же можно закрыть от индексации поисковыми системами.

Для того, чтобы это проверить:

  • находим на сервере файл .htaccess
  • в коде смотрим, чтобы не был закрыт сайт

Это может быть причиной, но многие даже не думаю в этом направлении. А как вариант не стоит исключать.

7. Хостинг или сервер работает не стабильно

Если в момент, когда поисковый бот пришел на сайт индексировать страницы, сайт не доступен, то это может быть причиной не индексации.

Как минимум стоит позаботиться о том, чтобы up time у вашего сервера был хорошим и хостинг стабильным.

Сервисов, которые позволяет это проконтролировать множество. Если нужно бесплатно, то Яндекс Метрика оповещает о том, когда сайт не доступен.

доступность сайта Яндекс метрика

Как я сказал, сервисов множество, вводим в поиск uptime checker и получаем множество результатов сервисов. А дальше выбираем на вкус и цвет.

8. Проблемы с AJAX/JavaScript

Не секрет, что Google индексирует AJAX и JavaScript. Вот ссылка для разработчиков с инструкцией: https://support.google.com/webmasters/answer/174992

Но на данный момент поисковая система индексирует эти языки не так легко и просто как HTML.

В случае, если вы не правильно настроили все для поиска в AJAX и JavaScript, то Google не проиндексирует ваш сайт и страницы.

Вот полезная информация из справки Гугла на этот счет: https://support.google.com/webmasters/answer/174993

9. У вас на сайте много дублированного контента

Если на сайте много дублированного контента, как:

  • страницы
  • мета тегов

То во первых можно получить санкции от Google Панды. Во вторых это может быть причиной того, что сайт не индексируется.

много дублированного контента

Статьи в тему:

— Как найти дубликаты страниц на сайте

— Как убрать или закрыть дубли от индексации

На эту причину стоит обращать внимание. Так как сейчас это № 1 причина, за которые можно получить санкции и сложности в дальнейшей раскрутке сайта.

 10. Очень медленная скорость загрузки сайта

Скорость загрузки сайта влияет на позиции и это один из факторов ранжирования. Поэтому если ваш сайт грузиться очень долго, то вполне вероятно, что он не будет нормально индексироваться.

Для начала читаем статью: Как время загрузки влияет на позиции в Google

Очень медленная скорость загрузки сайта

После чего, нужно учесть все моменты со скоростью загрузки и сделать ее очень быстрой.

11. Ваш домен ранее был забанен

Такое часто случается. Когда:

  • регистрируешь хороший и звучный домен
  • по обратным ссылкам все нормально
  • делаешь хороший сайт с нормальным дизайном
  • наполняешь уникальным и толковым контентом
  • а он не хочет никак индексироваться

Ваш домен ранее был забанен

В таком случае дела не очень хороши. Но все равно это можно поправить. А именно:

  • написать запрос на пересмотр (если Яндекс, узнать в чем причина)
  • написать на форуме Google (постараться узнать в чем причина)
  • развивать проект

Статья в тему: Как проверить сайт на бан поисковых систем?

Но по опыту скажу. Если домен не лезет в течении 3-4 месяцев нормально. То лучше развивать проект на другом домене. Как минимум это будет быстрее и на порядок проще.

12. У вас нет sitemap на сайте

Это очень редко может быть причиной. Но все же может быть. Поэтому нужно сделать карту сайта и добавить ее как Google вебмастер, так и в Яндекс вебмастер.

Статья в тему: Создаем sitemap для Google и Яндекс

В заключение

Индексация сайта важнейший момент для поискового продвижения сайта. Поэтому сначала нужно найти причину, понимать следствия. В итоге не допускать того, чтобы с индексацией сайта были проблемы.

Хорошие статьи по индексации сайта в помощь:

— Как быстро проверить индексацию страниц всего сайта?

— Как быстро проиндексировать сайт или страницу?

— Почему Яндекс медленно индексирует молодые сайты?

А что вы думаете про причины не индексации или плохой индексации сайта?

PS: если вы перепробовали все причины и сайт не индексируется, то однозначно стоит писать в поддержку поисковых систем и узнавать причину у них.

Понравилась статья? Получай свежие статьи первым по e-mail

https://seoprofy.ua/blog/optimizaciya-sajtov/12-prichin-ne-indexa

Ограничение объема данных на каталог

Суть состоит в том, чтобы создать дополнительный раздел на жестком диске, и затем его смонтировать на папку

sudo dd if=/dev/zero of=/var/fs/teacher.fs bs=1024 count=20971520
mkfs.ext4 /var/fs/teacher.fs
mount -t ext4 -o loop /var/fs/teacher.fs /var/www/teacher

чтобы сделать автоматическое монтирование

/var/fs/teacher.fs      /var/www/teacher  auto    auto,loop 0       0

Настройка и установка git на собственном сервере

Устанавливаем следующие компоненты:

apt-get install git

apt-get install fcgiwrap spawn-fcgi — нужно для nginx

apt-get install gitweb — web сайт для git. Настройки можно изменить в /etc/gitweb.conf (обычно здесь меняет параметр $projectroot)

Настраиваем nginx для GitWeb

server
{
  access_log /var/log/nginx/gitweb.access.log;

  error_log /var/log/nginx/gitweb.error.log info;

  server_name gitweb.developernote.com;

  location /index.cgi {
    root /usr/share/gitweb/;
    include fastcgi_params;
    gzip off;
    fastcgi_param SCRIPT_NAME $uri;
    fastcgi_param GITWEB_CONFIG /etc/gitweb.conf;
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
  }
  location / {
    root /usr/share/gitweb/;
    index index.cgi;
  }
}

Далее создаем директорию для хранения репозиториев

cd /var/www
mkdir git
cd /var/www/git
git init --bare project.git
cd project.git
touch readme
git add .
git commit -m "first"
chown -R www-data:www-data . 
chmod -R 777 .
service fcgiwrap restart # возможно это не нужно выполнять

После этого можно спокойно открыть сайт по адресу gitweb.developernote.com

Теперь настраиваем сам git. В Nginx добавляем еще один сайт

server
{
  access_log /var/log/nginx/git.access.log;

  error_log /var/log/nginx/git.error.log info;

  server_name git.developernote.com;

  gzip off;

  location / {
        root /home/git/repositories;

        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_param SCRIPT_FILENAME   /usr/lib/git-core/git-http-backend;
        fastcgi_param PATH_INFO         $uri;
        fastcgi_param GIT_PROJECT_ROOT  /home/git/repositories;
        fastcgi_param GIT_HTTP_EXPORT_ALL "";
        fastcgi_param REMOTE_USER $remote_user;
        include fastcgi_params;
  }
}

И если все правильно настроить, то гит должен заработать

Чтобы использовать авторизацию нужно установить

apt-get install apache2-utils

sudo htpasswd /var/www/git/htpasswd hitesh , где
/var/www/git/htpasswd путь где содержится файл, каталог которого должен быть заблокирован
hitesh — имя пользователя для доступа

И в Настройках nginx сайтов прописываем

server
{
 ...
  auth_basic "GitWeb requires authorization";
  auth_basic_user_file /home/git/.gitpasswd;
  
  ...
}

Оригинал статьи: https://developernote.com/2015/01/installing-git-on-ubuntu-12-04-and-enabling-http-access-with-nginx/

Настройка apache для wiki

Чтобы настроить wiki для виртуальной директории, нужно в папке /etc/apache2/conf-enabled добавить файл, например wiki.conf

Заполнить в нем следующую информацию.

Alias /wiki /var/www/wiki

Далее перезапускаем apache

service apache2 restart

Если сайт уже был настроен (файл LocalSettings.php уже есть), то в файле конфигурации нужно прописать следующие настройки

$wgScriptPath = "/wiki";

 

Настраиваем сайт nginx на несколько location

server {
    listen       ...;
    ...
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
    
    location /blog {
        rewrite ^/blog(.*) /$1 break;
        proxy_pass http://127.0.0.1:8181;
    }

    location /mail {
        rewrite ^/mail(.*) /$1 break;
        proxy_pass http://127.0.0.1:8282;
    }
    ...
}

Перенаправление запроса в Nginx

Если нужно сделать перенаправление с одной страницы (псевдонима) на другую страницу нужно добавить следующий код в настройки сайта

server {
      ...
      location = /имя {
            rewrite ^/.* http://localhost permanent;
      }
      ...
}

Перестаем бояться виртуализации при помощи KVM

Оригинал статьи

Мне лично проще всего думать о KVM (Kernel-based Virtual Machine), как о таком уровне абстракции над технологиями хардверной виртуализации Intel VT-x и AMD-V. Берем машину с процессором, поддерживающим одну из этих технологий, ставим на эту машину Linux, в Linux’е устанавливаем KVM, в результате получаем возможность создавать виртуалки. Так примерно и работают облачные хостинги, например, Amazon Web Services. Наряду с KVM иногда также используется и Xen, но обсуждение этой технологии уже выходит за рамки данного поста. В отличие от технологий контейнерной виртуализации, например, того же Docker, KVM позволяет запускать в качестве гостевой системы любую ОС, но при этом имеет и большие накладные расходы на виртуализацию.

Примечание: Описанные ниже действия были проверены мной на Ubuntu Linux 14.04, но по идее будут во многом справедливы как для других версий Ubuntu, так и других дистрибутивов Linux. Все должно работать как на десктопе, так и на сервере, доступ к которому осуществляется по SSH.

Установка KVM

Проверяем, поддерживается ли Intel VT-x или AMD-V нашим процессором:

grep -E ‘(vmx|svm)’ /proc/cpuinfo

Если что-то нагреполось, значит поддерживается, и можно действовать дальше.

Устанавливаем KVM:

sudo apt-get update
sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils

Что где принято хранить:

  • /var/lib/libvirt/boot/ — ISO-образы для установки гостевых систем;
  • /var/lib/libvirt/images/ — образы жестких дисков гостевых систем;
  • /var/log/libvirt/ — тут следует искать все логи;
  • /etc/libvirt/ — каталог с файлами конфигурации;

Теперь, когда KVM установлен, создадим нашу первую виртуалку.

Создание первой виртуалки

В качестве гостевой системы я выбрал FreeBSD. Качаем ISO-образ системы:

cd /var/lib/libvirt/boot/
sudo wget http://ftp.freebsd.org/path/to/some-freebsd-disk.iso

Управление виртуальными машинами в большинстве случаев производится при помощи утилиты virsh:

sudo virsh —help

Перед запуском виртуалки нам понадобится собрать кое-какие дополнительные сведения.

Смотрим список доступных сетей:

sudo virsh net-list

Просмотр информации о конкретной сети (с именем default):

sudo virsh net-info default

Смотрим список доступных оптимизаций для гостевых ОС:

sudo virt-install —os-variant list

Итак, теперь создаем виртуальную машину с 1 CPU, 1 Гб RAM и 32 Гб места на диске, подключенную к сети default:

sudo virt-install \
—virt-type=kvm \
—name freebsd10 \
—ram 1024 \
—vcpus=1 \
—os-variant=freebsd8 \
—hvm \
—cdrom=/var/lib/libvirt/boot/FreeBSD-10.2-RELEASE-amd64-disc1.iso \
—network network=default,model=virtio \
—graphics vnc \
—disk path=/var/lib/libvirt/images/freebsd10.img,size=32,bus=virtio

Вы можете увидеть:

WARNING Unable to connect to graphical console: virt-viewer not
installed. Please install the ‘virt-viewer’ package.Domain installation still in progress. You can reconnect to the console
to complete the installation process.

Это нормально, так и должно быть.

Затем смотрим свойства виртуалки в формате XML:

sudo virsh dumpxml freebsd10

Тут приводится наиболее полная информация. В том числе есть, к примеру, и MAC-адрес, который понадобятся нам далее. Пока что находим информацию о VNC. В моем случае:

<graphics type=‘vnc’ port=‘5900’ autoport=‘yes’ listen=‘127.0.0.1’>

С помощью любимого клиента (я лично пользуюсь Rammina) заходим по VNC, при необходимости используя SSH port forwarding. Попадаем прямо в инстялятор FreeBSD. Дальше все как обычно — Next, Next, Next, получаем установленную систему.

Основные команды

Давайте теперь рассмотрим основные команды для работы с KVM.

Получение списка всех виртуалок:

sudo virsh list —all

Получение информации о конкретной виртуалке:

sudo virsh dominfo freebsd10

Запустить виртуалку:

sudo virsh start freebsd10

Остановить виртуалку:

sudo virsh shutdown freebsd10

Жестко прибить виртуалку (несмотря на название, это не удаление):

sudo virsh destroy freebsd10

Ребутнуть виртуалку:

sudo virsh reboot freebsd10

Склонировать виртуалку:

sudo virt-clone -o freebsd10 -n freebsd10-clone \
—file /var/lib/libvirt/images/freebsd10-clone.img

Включить/выключить автозапуск:

sudo virsh autostart freebsd10
sudo virsh autostart —disable freebsd10

Запуск virsh в диалоговом режиме (все команды в диалоговом режиме — как описано выше):

sudo virsh

Редактирование свойств виртуалки в XML, в том числе здесь можно изменить ограничение на количество памяти и тд:

sudo virsh edit freebsd10

Важно! Комментарии из отредактированного XML, к сожалению, удаляются.

Когда виртуалка остановлена, диск тоже можно ресайзить:

sudo qemu-img resize /var/lib/libvirt/images/freebsd10.img -2G
sudo qemu-img info /var/lib/libvirt/images/freebsd10.img

Важно! Вашей гостевой ОС, скорее всего, не понравится, что диск внезапно стал больше или меньше. В лучшем случае, она загрузится в аварийном режиме с предложением переразбить диск. Скорее всего, вы не должны хотеть так делать. Куда проще может оказаться завести новую виртуалку и смигрировать на нее все данные.

Резервное копирование и восстановление производятся довольно просто. Достаточно сохранить куда-то вывод dumpxml, а также образ диска, а потом восстановить их. На YouTube удалось найти видео с демонстрацией этого процесса, все и вправду несложно.

Настройки сети

Интересный вопрос — как определить, какой IP-адрес получила виртуалка после загрузки? В KVM это делается хитро. Я в итоге написал такой скрипт на Python:

#!/usr/bin/env python3

# virt-ip.py script
# (c) 2016 Aleksander Alekseev
# http://eax.me/

import sys
import re
import os
import subprocess
from xml.etree import ElementTree

def eprint(str):
print(str, file=sys.stderr)

if len(sys.argv) < 2:
eprint(«USAGE: « + sys.argv[0] + » <domain>»)
eprint(«Example: « + sys.argv[0] + » freebsd10″)
sys.exit(1)

if os.geteuid() != 0:
eprint(«ERROR: you shold be root»)
eprint(«Hint: run `sudo « + sys.argv[0] + » …`»);
sys.exit(1)

if subprocess.call(«which arping 2>&1 >/dev/null», shell = True) != 0:
eprint(«ERROR: arping not found»)
eprint(«Hint: run `sudo apt-get install arping`»)
sys.exit(1)

domain = sys.argv[1]

if not re.match(«^[a-zA-Z0-9_-]*$», domain):
eprint(«ERROR: invalid characters in domain name»)
sys.exit(1)

domout = subprocess.check_output(«virsh dumpxml «+domain+» || true»,
shell = True)
domout = domout.decode(‘utf-8’).strip()

if domout == «»:
# error message already printed by dumpxml
sys.exit(1)

doc = ElementTree.fromstring(domout)

# 1. list all network interfaces
# 2. run `arping` on every interface in parallel
# 3. grep replies
cmd = «(ifconfig | cut -d ‘ ‘ -f 1 | grep -E ‘.’ | « + \
«xargs -P0 -I IFACE arping -i IFACE -c 1 {} 2>&1 | « + \
«grep ‘bytes from’) || true»

for child in doc.iter():
if child.tag == «mac»:
macaddr = child.attrib[«address»]
macout = subprocess.check_output(cmd.format(macaddr),
shell = True)
print(macout.decode(«utf-8»))

Скрипт работает как с default сетью, так и с bridged сетью, настройку которой мы рассмотрим далее. Однако на практике куда удобнее настроить KVM так, чтобы он всегда назначал гостевым системам одни и те же IP-адреса. Для этого правим настройки сети:

sudo virsh net-edit default

… примерно таким образом:

<dhcp>
<range start=‘192.168.122.2’ end=‘192.168.122.254’/>
<!— добавляем вот эту строчку: —>
<host mac=’52:54:00:59:96:00′ name=‘freebsd10’ ip=‘192.168.122.184’/>
</dhcp>

После внесения этих правок необходимо выполнить команды:

sudo virsh net-destroy default
sudo virsh net-start default
sudo service libvirt-bin restart

Теперь перезагружаем несколько раз гостевую систему и убеждаемся, что она всегда получает адрес 192.168.122.184.

По умолчанию виртуальные машины могут ходить в интернет, а также к ним можно приконнектится из хост-системы. В общем и целом все выглядит так, словно гостевые системы находятся за NAT. На практике же часто бывает куда удобнее иметь bridged сеть. Как она настраивается на хост-системе ранее мы уже рассматривали в заметках Туториал по контейнеризации при помощи LXCи Контейнерная виртуализация при помощи OpenVZ.

После окончания настройки правим конфиг гостевой системы. Находим в нем что-то вроде:

<interface type=‘network’>
<source network=‘default’/>
<!— остальное не важно —>
</interface>

… и заменяем на что-то вроде:

<interface type=‘bridge’>
<source bridge=‘br0’/>
<!— прочее оставляем как есть —>
</interface>

Перезагружаем гостевую систему и проверяем, что она получила IP по DHCP от роутера. Если же вы хотите, чтобы гостевая система имела статический IP-адрес, это настраивается как обычно внутри самой гостевой системы.

Программа virt-manager

Вас также может заинтересовать программа virt-manager:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd USERNAME

Так выглядит ее главное окно:

Работа с KVM при помощи virt-manager

Как видите, virt-manager представляет собой не только GUI для виртуалок, запущенных локально. С его помощью можно управлять виртуальными машинами, работающими и на других хостах, а также смотреть на красивые графички в реальном времени. Я лично нахожу особенно удобным в virt-manager то, что не нужно искать по конфигам, на каком порту крутится VNC конкретной гостевой системы. Просто находишь виртуалку в списке, делаешь двойной клик, и получаешь доступ к монитору.

Еще при помощи virt-manager очень удобно делать вещи, которые иначе потребовали бы трудоемкого редактирования XML-файлов и в некоторых случаях выполнения дополнительных команд. Например, переименование виртуальных машин, настройку CPU affinity и подобные вещи. Кстати, использование CPU affinity существенно снижает эффект шумных соседей и влияние виртуальных машин на хост-систему. По возможности используйте его всегда.

Если вы решите использовать KVM в качестве замены VirtualBox, примите во внимание, что хардверную виртуализацию они между собой поделить не смогут. Чтобы KVM заработал у вас на десктопе, вам не только придется остановить все виртуалки в VirtualBox и Vagrant, но и перезагрузить систему. Я лично нахожу KVM намного удобнее VirtualBox, как минимум, потому что он не требует выполнять команду sudo /sbin/rcvboxdrv setup после каждого обновления ядра, адекватно работает c Unity, и вообще позволяет спрятать все окошки.

Заключение

По традиции, немного ссылок по теме:

В целом, KVM произвел на меня исключительно положительное впечатление. Теперь я не понимаю, зачем все это время я мучился с Vagrant и VirtualBox, когда все уже есть в KVM и сделано куда лучше. Ну, почти. Кое-какие косяки все же имеются. Так, например, в htop гостевой системы вы можете видеть, что утилизируете CPU на 30%, хотя на хост-системе вы утилизируете все 100%. Однако мой опыт работы с виртуальными машинами свидетельствует о том, что такого рода проблемы и прочие шумные соседи возникают всегда, и еще один минорный баг в общем-то не делает в этом плане все сильно хуже.