
Карта сайта один из главных элементов продвижения сайта, без нее поисковики будут в разы медленнее индексировать новые страницы. Карта сайта или sitemap.xml — это XML-документы с служебной информацией. Они служат для ориентации поисковых роботов в структуре сайта. Кроме XML-карт существуют и HTML-карты. Они помогают посетителям ориентироваться на сайте. В этой статей речь идет исключительно о XML-картах, предназначенных для быстрой индексации именно поисковыми системами.
Что содержится в sitemap.xml:
- Список URL страниц сайта и их иерархия.
- Тип опубликованного контента.
- Информация об изображениях и видео для индексирования сайта и формирования выдачи.
- Сведения о частоте обновления и последнем обновлении страницы.
- Сведения о приоритетности страниц.
- Данные об альтернативных версиях страниц.
Утверждение, что без XML-карты поисковые системы не будут индексировать сайт — не верно. Даже в Вебмастере Яндекса отсутствие файла с картой отмечается не как критичная ошибка, а только возможная. Но есть ситуации, когда отсутствие карты затрудняет индексирование страниц. Например, если на них нет ссылок с других страниц сайта, или сайт большой со сложной структурой, или нужно проиндексировать новый сайт. Не получиться и быстро сообщить поисковым системам о том, что информация на страницах обновилась.
Карта сайта в WordPress
По умолчанию в среде wordpress отсутствуют инструменты ее автоматического создания.
Для создания карты сайта чаще всего предлагается использовать плагин. Вроде просто, но, с каждым установленным плагином сайт становится все тяжелее, плюс Вы будете привязанным к чужому коду и т.п. Но и без карты сайта нельзя. Поэтому, предлагаю решить этот вопрос с меньшими затратами.
Как создать карту сайта в WordPress без плагинов
И так, чтобы карта Вашего сайта в среде WordPress создавалась и автоматически обновлялась при каждой новой публикации, необходимо в файл functions.php, который расположен в корневом каталоге темы добавить следующий код.
/* sitemap XML */ function front_page_url(){ $protocol=(!empty($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off'||$_SERVER['SERVER_PORT']==443)?"https://":"http://"; $domainName=$_SERVER['HTTP_HOST']; return $protocol.$domainName; } function xml_sitemap(){ $post_priority="0.8"; $page_priority="0.7"; $args=array('post_type'=>array('post','page'),'post_status'=>'publish','posts_per_page'=>-1,'ignore_sticky_posts'=>true); $result = new WP_Query($args); if(!empty($result)){ $f=''; // front page $f = $f." '; $fp = fopen($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml','w'); fwrite($fp, $f); fclose($fp); } return; } add_action(publish_post,xml_sitemap); add_action(publish_page,xml_sitemap); add_action(delete_post,xml_sitemap);"; // tags $tags=get_tags(array('number'=>0,'offset'=>0,'orderby'=>'id','order'=>'ASC','hide_empty'=>true,'fields'=>'all','slug'=>'','hierarchical'=>true,'name__like'=>'','pad_counts'=>false,'get'=>'','child_of'=>0,'parent'=>'')); foreach($tags as $tag){ $f=$f." ".front_page_url()." daily 1.0 "; } // categories $categories=get_categories(array('taxonomy'=>'category','type'=>'post','child_of'=>0,'parent'=>'','orderby'=>'name','order'=>'ASC','hide_empty'=>1,'hierarchical'=>1,'exclude'=>'','include'=>'','number'=>0,'pad_counts'=>false)); foreach($categories as $cat){ $f=$f." ".str_replace('./',null,get_tag_link($tag->term_id))." weekly 0.4 "; } // posts foreach($result->posts as $row){ if(get_post_type($row->ID)=='post'){ $priority=$post_priority; }else{ $priority=$page_priority; } $f=$f." ".str_replace('./',null,get_category_link($cat->cat_ID))." monthly 0.5 "; } $f=$f.' ".get_permalink($row->ID)." ".date('c', strtotime($row->post_modified_gmt))." daily ".$priority."
Модуль подсветки синтаксиса еще не до конца отлажен, может исказить текст, поэтому выкладываю ссылку, где можно скачать этот фрагмент кода
Ну вот в принципе и всё.
Теперь карта Вашего сайта будет обновляться полностью во время публикации страницы, записи, либо их удаления.