В мире SEO побеждает тот, кто умеет находить нестандартные источники ссылочного веса. Один из таких способов — найти брошенные домены, на которые ссылается Wikipedia, и с помощью редиректа (301) перелить авторитет (link juice) на свой ресурс. Это работает — и не противоречит рекомендациям поисковых систем, если всё сделано грамотно.

В этой статье:
Расскажем, как работает метод перелива веса с Wikipedia через редирект.
Разберем готовый Python-скрипт для автоматического поиска таких доменов.
Дадим рекомендации по дальнейшей работе с найденными доменами.
А в своем Телеграм канале пишу еще больше про всякое из реального маркетинга.
Что такое перелив веса с Wikipedia
Wikipedia — один из самых авторитетных сайтов в интернете. Если она ссылается на сторонний ресурс, часть ее SEO-авторитета передается по этой ссылке (несмотря на nofollow — часть сигнала все равно улавливается). Но что, если этот ресурс больше не существует, а домен свободен для регистрации?
Вот что можно сделать:
Найти такие несуществующие домены, на которые ссылается Wikipedia.
Зарегистрировать их.
Сделать 301-редирект на ваш сайт или нужную статью.
Получить ссылочный вес (и, возможно, трафик) с Wikipedia без необходимости покупать ссылки или просить добавления новых.
Python-скрипт: автоматический сбор брошенных доменов из Wikipedia
Скрипт, представленный ниже, выполняет весь цикл:
Ищет статьи Wikipedia по ключевым словам
Извлекает внешние ссылки со страниц
Извлекает домены из ссылок
Проверяет, свободен ли домен для регистрации
Сохраняет результаты в CSV-файл
import wikipediaapi import requests from urllib.parse import urlparse from bs4 import BeautifulSoup import time import whois import socket import dns.resolver import csv import logging import random # Настройка логирования logging.basicConfig( filename='domain_checker.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s' ) def search_wikipedia(keywords): """ Ищет страницы Википедии по заданным ключевым словам. :param keywords: Список ключевых слов для поиска. :return: Список кортежей (ключевое слово, название страницы, URL страницы). """ user_agent = "MyWikiParser/1.0 (your_email@example.com)" wiki_wiki = wikipediaapi.Wikipedia( language='ru', extract_format=wikipediaapi.ExtractFormat.WIKI, user_agent=user_agent ) results = [] for keyword in keywords: page = wiki_wiki.page(keyword) if page.exists(): # Проверка наличия любого из ключевых слов в тексте страницы (без учета регистра) if any(word.lower() in page.text.lower() for word in keywords): results.append((keyword, page.title, page.fullurl)) return results def fetch_external_links(page_url): """ Извлекает все внешние ссылки из HTML-кода страницы. :param page_url: URL страницы Википедии. :return: Множество внешних URL. """ try: headers = { "User-Agent": "MyWikiParser/1.0 (your_email@example.com)" } response = requests.get(page_url, headers=headers, timeout=10) if response.status_code != 200: print(f"Не удалось загрузить страницу {page_url}: статус {response.status_code}") return set() soup = BeautifulSoup(response.text, 'html.parser') external_links = set() # Находим все теги <a> с href, начинающимися с http или https for a_tag in soup.find_all('a', href=True): href = a_tag['href'] if href.startswith('http://') or href.startswith('https://'): external_links.add(href) return external_links except requests.exceptions.RequestException as e: print(f"Ошибка при загрузке страницы {page_url}: {e}") return set() def check_domain_availability(domain): """ Проверяет доступность домена для регистрации. :param domain: Доменное имя. :return: True, если домен доступен для регистрации, иначе False. """ try: # WHOIS проверка w = whois.whois(domain) if isinstance(w.domain_name, list): domain_registered = any(domain.lower() == dn.lower() for dn in w.domain_name) elif isinstance(w.domain_name, str): domain_registered = domain.lower() in w.domain_name.lower() else: domain_registered = False except whois.parser.PywhoisError: domain_registered = False except socket.gaierror: domain_registered = False except Exception as e: logging.error(f"Ошибка WHOIS-запроса для {domain}: {e}") domain_registered = False if not domain_registered: try: answers = dns.resolver.resolve(domain, 'A') is_available = False # Домен занят except dns.resolver.NXDOMAIN: is_available = True # Домен свободен except dns.resolver.NoAnswer: is_available = True # Домен свободен except dns.exception.Timeout: is_available = False # Не удалось проверить, считаем занят except Exception as e: logging.error(f"Ошибка DNS-запроса для {domain}: {e}") is_available = False if is_available: logging.info(f"Домен {domain} доступен для регистрации.") return True else: logging.info(f"Домен {domain} занят.") return False else: logging.info(f"Домен {domain} занят.") return False def get_domain(url): """ Извлекает доменное имя из URL. :param url: Полный URL. :return: Доменное имя. """ parsed_url = urlparse(url) return parsed_url.netloc def save_results_to_csv(results, filename='available_domains.csv'): """ Сохраняет результаты в CSV-файл. :param results: Список кортежей с результатами. :param filename: Имя файла для сохранения. """ try: with open(filename, mode='w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerow(["Ключевое слово", "Статья Wikipedia", "Ссылка", "Домен из ссылки"]) for result in results: writer.writerow(result) except IOError as e: logging.error(f"Ошибка записи в файл {filename}: {e}") if __name__ == "__main__": keywords = ["ERP"] pages = search_wikipedia(keywords) print("Проверка страниц и ссылок на свободные домены:") available_results = [] for keyword, title, url in pages: print(f"\nСтраница: {title} ({url})") external_links = fetch_external_links(url) if not external_links: print("Нет внешних ссылок на этой странице.") continue for link in external_links: domain = get_domain(link) is_available = check_domain_availability(domain) if is_available: print(f" - Ключевое слово: {keyword}, Ссылка: {link} (Домен: {domain})") available_results.append((keyword, title, link, domain)) time.sleep(random.uniform(0.5, 1.5)) if available_results: save_results_to_csv(available_results) print("\nРезультаты сохранены в available_domains.csv") else: print("\nНет доступных доменов для регистрации среди внешних ссылок.")
Пример работы
Допустим, вы вводите ключевое слово ERP. Скрипт:
Находит статью "ERP" на ru.wikipedia.org
Парсит HTML страницы и извлекает все внешние ссылки
Из каждой ссылки получает домен (например,
old-softwaresolutions.com)Проверяет по WHOIS и DNS, занят ли домен
Если домен свободен — добавляет его в список
Разберем подробно каждую часть скрипта для сбора брошенных доменов с Wikipedia — с пояснениями, что и зачем делает каждая функция:
Импорты и настройки
import wikipediaapi import requests from urllib.parse import urlparse from bs4 import BeautifulSoup import time import whois import socket import dns.resolver import csv import logging import random
Что подключается:
wikipediaapi— API-клиент для Wikipediarequests— для загрузки HTML-страницurlparse— извлечение домена из URLBeautifulSoup— парсинг HTML, вытаскиваем внешние ссылкиwhois— проверка занятости доменаdns.resolver— проверка DNS-записей доменаcsv— сохранение результатовlogging— логирование в файлrandom,time— случайная пауза между запросами, чтобы не попасть под блок
Настройка логгера
logging.basicConfig( filename='domain_checker.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s' )
Создает лог-файл domain_checker.log, куда пишутся сообщения — успехи, ошибки, проблемы соединения и т.д.
Поиск статей Wikipedia по ключевым словам
def search_wikipedia(keywords): ...
Что делает:
Инициализирует
wikipediaapiдля русской ВикипедииДля каждого ключевого слова:
Получает страницу
Проверяет, существует ли она
Проверяет, есть ли в тексте ключевое слово
Возвращает список из кортежей:
(ключевое слово, название статьи, ссылка)
Извлечение внешних ссылок с Wikipedia
def fetch_external_links(page_url): ...
Что делает:
Загружает HTML-страницу Wikipedia
Использует
BeautifulSoupдля поиска всех ссылок<a href="...">Фильтрует только внешние ссылки (начинаются с
http://илиhttps://)Возвращает
set()ссылок
Извлечение домена из URL
def get_domain(url): parsed_url = urlparse(url) return parsed_url.netloc
Что делает:
Из
https://example.com/page.htmlполучитexample.comИспользуется, чтобы проверить именно домен, а не полный URL
Проверка доступности домена
def check_domain_availability(domain): ...
Двухступенчатая проверка:
WHOIS — проверяет, зарегистрирован ли домен
Если WHOIS показывает, что домен не зарегистрирован, переходит ко второму шагу
DNS — проверка наличия A-записи
Если DNS возвращает NXDOMAIN или NoAnswer → домен точно свободен
В остальных случаях — занят или не удалось проверить
Результат: True, если домен можно зарегистрировать
Сохранение результатов в CSV
def save_results_to_csv(results, filename='available_domains.csv'): ...
Сохраняет итоговые результаты (только свободные домены) в CSV-файл:
Ключевое слово
Название статьи
Ссылка
Домен
Главный цикл запуска скрипта
if __name__ == "__main__": ...
Что происходит:
Задает ключевые слова (
keywords = ["ERP"])Находит статьи Wikipedia по этим ключевым словам
Для каждой статьи:
Парсит внешние ссылки
Извлекает домены
Проверяет их доступность
Если находит свободный домен:
Добавляет в
available_results
В конце сохраняет всё в
available_domains.csv
Между проверками стоит пауза random.uniform(0.5, 1.5) — чтобы не попасть под антибот-защиту.
SEO-применение: как перелить вес правильно
1. Зарегистрируйте домен
После того как скрипт найдет доступный домен, зарегистрируйте его у любого регистратора. Цена обычного .com, .org, .ru — от 100 до 500 ₽/год.
2. Настройте 301 редирект
На хостинге или через .htaccess настройте перенаправление:
Redirect 301 / https://your-site.ru/
Или через Nginx:
server { server_name old-domain.com; return 301 https://your-site.ru$request_uri; }
3. Оптимизируйте целевую страницу
Перенаправляйте не просто на главную, а на страницу, релевантную теме исходной статьи на Wikipedia — чтобы редирект выглядел естественно.
Важные рекомендации
Совет | Обоснование |
|---|---|
Не регистрируйте сотни доменов сразу | Google может расценить это как сетку PBN |
Не редиректите всё на одну страницу | Используйте тематические посадочные — для естественности |
Проверяйте историю домена (через Wayback Machine) | Возможно, ранее он использовался под спам |
Следите за индексацией | Новые редиректы могут не сразу попасть в индекс |
Дополнительные фишки
Можно расширить скрипт, чтобы он парсил Wikipedia на других языках (
en,de,fr) — в англоязычных статьях ссылок и возможностей в разы больше.Добавьте проверку на наличие домена в Archive.org или через ahrefs.com — чтобы видеть, был ли он проиндексирован ранее.
Заключение
Этот способ — не «серый» и не «чёрный» SEO, а умный перехват утраченного ссылочного веса. Вы не вмешиваетесь в Wikipedia, не просите проставить ссылку и не занимаетесь спамом. Вы просто регистрируете домен, на который кто-то раньше сослался, и аккуратно направляете трафик и вес туда, где он вам действительно нужен.
Используйте с умом. А если нужна помощь — напишите, помогу внедрить под конкретные задачи или проконсультировать и интегрировать в ваш SEO-процесс.
