Оптимізація Internal Linking структури вашого сайту
Internal Linking — система внутрішніх посилань, яка розподіляє ссилочний вагу (PageRank) між сторінками та допомагає пошуковим роботам знаходити та індексувати контент. Правильна структура робить важливі сторінки більш авторитетними.
Аудит поточної структури
import scrapy
import networkx as nx
class InternalLinksSpider(scrapy.Spider):
name = 'internal_links'
start_urls = ['https://company.com']
def __init__(self):
self.graph = nx.DiGraph()
def parse(self, response):
current_url = response.url
for link in response.css('a[href]::attr(href)').getall():
absolute = response.urljoin(link)
if 'company.com' in absolute:
self.graph.add_edge(current_url, absolute)
yield response.follow(absolute, self.parse)
def closed(self, reason):
# Сторінки з найвищим PageRank
pagerank = nx.pagerank(self.graph)
top_pages = sorted(pagerank.items(), key=lambda x: x[1], reverse=True)[:20]
# Orphan pages (без вхідних посилань)
orphans = [node for node in self.graph.nodes()
if self.graph.in_degree(node) == 0
and node != 'https://company.com']
print(f"Orphan pages: {len(orphans)}")
for url in orphans[:10]:
print(f" {url}")
Метрики для аналізу:
- Orphan pages — сторінки без вхідних внутрішніх посилань
- Crawl depth — глибина вкладеності (важливі сторінки повинні бути 1–3 кліка від головної)
- PageRank distribution — рівномірно ли розподілений вага
Принципи правильної структури
Плоска ієрархія — важливі сторінки близько до головної:
Головна → Категорія → Сторінка товару (максимум 3 кліка)
Тематичні кластери — сторінки по одній темі ссилаються друг на друга:
Pillar page (основна): /guide/seo
↔ /guide/seo/technical
↔ /guide/seo/on-page
↔ /guide/seo/link-building
Хлібні крошки — автоматичні внутрішні посилання з Schema.org розміткою:
<nav aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="/"><span itemprop="name">Головна</span></a>
<meta itemprop="position" content="1">
</li>
</ol>
</nav>
Автоматичні пов'язані статті
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
def find_related_articles(target_article, all_articles, top_n=5):
texts = [a['title'] + ' ' + a['body'] for a in all_articles]
target_text = target_article['title'] + ' ' + target_article['body']
vectorizer = TfidfVectorizer(max_features=1000, stop_words='english')
tfidf_matrix = vectorizer.fit_transform([target_text] + texts)
similarities = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix[1:]).flatten()
top_indices = similarities.argsort()[-top_n:][::-1]
return [all_articles[i] for i in top_indices if similarities[i] > 0.1]
Оптимізація Anchor Text
Anchor text посилання говорить пошуковикам про тему цільової сторінки:
Погано: <a href="/guide/seo">тут</a>
Погано: <a href="/guide/seo">натисни</a>
Добре: <a href="/guide/seo">керівництво з SEO</a>
Добре: <a href="/guide/technical-seo">аудит технічного SEO</a>
Виправлення Orphan Pages
def fix_orphan_pages(orphan_urls, content_db):
"""Знайти логічне місце для додавання посилань на orphan-сторінки"""
for url in orphan_urls:
page = content_db.get_by_url(url)
keywords = extract_keywords(page['title'])
# Знайти сторінки де упоминаються ці ключові слова
related = content_db.search(keywords, exclude_url=url, limit=5)
for related_page in related:
print(f"Add link to {url} from {related_page['url']}")
Тривалість
Аудит internal linking + розробка рекомендацій по покращенню структури — 2–3 робочих дні.







