Google indexing php pages

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Indexing project written in PHP, using Google Indexing Api. PHP Google Indexing API.

berkaycatak/php-google-indexing-api

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Читайте также:  Html input type submit method

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Indexing project written in PHP, using Google Indexing Api.

Screenshot at Apr 06 18-52-00

Add your json file to the following directory.

Interface — Fill in the inputs.

Password: The name of your json file. (medialyra.com for medialyra.com.json)
Website address: The website you want indexed.

http://localhost/api/?url=https://www.your-website.com
http://localhost/api/?method=1&url=https://www.your-website.com
http://localhost/api/?method=2&url=https://www.your-website.com
http://localhost/api/multiple?urls[]=https://www.your-website.com&urls[]=https://www.your-website.com/contact
http://localhost/api/multiple?method=1&urls[]=https://www.your-website.com&urls[]=https://www.your-website.com/contact
http://localhost/api/multiple?method=2&urls[]=https://www.your-website.com&urls[]=https://www.your-website.com/contact

You can use Composer or simply Download the Release

The preferred method is via composer. Follow the installation instructions if you do not already have composer installed.

Enter the name of your JSON file:

Line 15 in app/controllers/home.php

... $googleClient->setAuthConfig( 'YOUR_JSON_FILE_NANME.json' ); ...

Line 15 in app/controllers/multiple.php

... $googleClient->setAuthConfig( 'YOUR_JSON_FILE_NANME.json' ); ...

If your PHP version is below 8

composer install --ignore-platform-reqs

2- Edit the following file as indicated:

Line 104 in vendor/psr/cache/src/CacheItemInterface.php

... public function expiresAfter($time); ...

Line 30 in vendor/psr/log/src/LoggerInterface.php

... public function emergency( $message, array $context = []); ...

Line 43 in vendor/psr/log/src/LoggerInterface.php

... public function alert( $message, array $context = []); ...

Line 55 in vendor/psr/log/src/LoggerInterface.php

... public function critical( $message, array $context = []); ...

Line 66 in vendor/psr/log/src/LoggerInterface.php

... public function error( $message, array $context = []); ...

Line 79 in vendor/psr/log/src/LoggerInterface.php

... public function warning( $message, array $context = []); ...

Line 89 in vendor/psr/log/src/LoggerInterface.php

... public function notice( $message, array $context = []); ...

Line 101 in vendor/psr/log/src/LoggerInterface.php

... public function info( $message, array $context = []); ...

Line 111 in vendor/psr/log/src/LoggerInterface.php

... public function debug( $message, array $context = []); ...

Line 124 in vendor/psr/log/src/LoggerInterface.php

... public function log($level, $message, array $context = []); ...

About

Indexing project written in PHP, using Google Indexing Api. PHP Google Indexing API.

Источник

Пример использования Google Indexing API на PHP

В этой статье приведена подробная инструкция по использованию Google Indexing API и выполнению запросов на индексирование страниц через PHP. Indexing API — это очень простой способ для информирования Google об изменениях у вас на сайте.

Шаг 1. Проверьте наличие ресурса в Google Search Console

На этом шаге необходимо проверить наличие ресурса в Google Search Console. Если он уже у вас добавлен в консоль, то этот шаг можно пропустить.

1. Перейдите на страницу https://search.google.com/search-console/welcome и войдите, используя свою учетную запись Google.

2. Откройте меню в левом верхнем углу и нажмите «Добавить ресурс».

Добавление ресурса в Google Search Console

3. Если у вас нет доступа к вашим DNS-записям или не достаточно опыта, то можно просто использовать опцию «Ресурс с префиксом в URL». Введите URL и нажмите «Продолжить».

4. Выберите метод подтверждения. Самый простой — HTML-файл. Скачайте HTML-файл и загрузите его в корень вашего домена. После этого нажмите кнопку «Подтвердить».

Шаг 2. Создание сервисного аккаунта в Google Cloud Platform

Страница Service accounts в Google Cloud Platform

2. Выберите проект (если он не создан, его необходимо создать) и нажмите на «Create service account (создать сервисный аккаунт)».

Создание сервисного аккаунта в Google Cloud Platform

3. Заполните данные учетной записи.

Данные учетной записи сервисного аккаунта в Google Cloud Platform

Шаг 3. Создание ключа для аутентификации Google API

Теперь создадим закрытый ключ в формате JSON. Ключ будем использовать в PHP для доступа к API Google.

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

Созданные сервисные аккаунты для itchief в Google Cloud Platform

2. Выберите «Keys (ключи)» -> «Add key (Добавить ключ)» -> «Create new key (Создать новый ключ)».

Созданные нового ключа для доступа к API Google

3. Выберите JSON и нажмите «Create (Создать)». Созданный ключ будет загружен вам на компьютер.

Шаг 4. Добавление сервисного аккаунта в качестве владельца сайта

На этом шаге нужно добавить учетную запись службы Google в качестве владельца домена в Google Search Console. После этого эта учетная запись получит доступ к свойствам вашего домена через Google API.

2. Перейдите в «Настройки» (при необходимости выберите нужный ресурс).

Настройки в Google Search Console

3. Выберите пункт «Пользователи и разрешения».

4. Нажмите на кнопку «Добавить пользователя». Теперь вставьте адрес электронной почты учетной записи сервисного аккаунта.

Настройки в Google Search Console

Шаг 5. Установка клиентской библиотеки для Google API

Для обращения к Indexing API нам потребуются клиентские библиотеки Google API (ссылка на страницу GitHub и полную документацию: https://github.com/googleapis/google-api-php-client).

Установить библиотеки можно с помощью Composer или вручную.

Для загрузки с помощью Composer достаточно открыть консоль и написать в ней команду:

composer require google/apiclient

Самостоятельно скачать архив последней версии библиотеки для нужной версии PHP можно с GitHub на странице Releases · googleapis/google-api-php-client. После загрузки архива на компьютер, разархивируйте его содержимое в папку вашего проекта.

Подключение библиотеки в свой проект выполняется посредством:

require_once '/path/to/vendor/autoload.php';

Шаг 6. Примеры кода

Структура файлов примера для работы с Google Indexing API

  • каталог vendor содержит библиотеки Google API, которые были установлены с помощью Composer;
  • composer.json – файл, который был автоматически создан Composer и содержит список установленных с помощью этого инструмента библиотек;
  • api-project-696409.json – файл, содержащий секретный ключ, который мы создали и скачали на 3 шаге;
  • index.html – HTML страница, на которую поместим для указания URL, кнопки для выполнения различных действий и для вывода ответа Indexing API;
  • main.js — JavaScript сценарий для отправки AJAX запроса на сервер;
  • indexing.php — серверный php-сценарий для отправки запроса в Google Indexing API.

В HTML создадим страницу со следующим содержимым (оформление выполним на Bootstrap 5):

  

Результат:

.

Форма для работы Google Indexing API

  • элемент предназначен для указания URL-адреса;
  • кнопка с id=»get-status» применяется для получения статуса уведомления (т.е. показывает ответ, когда сервер Google в последний раз получал запрос для указанного URL);
  • кнопка с id=»update» предназначена для обновления URL (отправляет запрос на индексацию, т.е. когда это новый URL и его нужно просканировать, либо когда в нём произошло изменение контента);
  • кнопка с id=»delete» используется для отправки запроса на удаление URL из индекса;
  • элемент применяется для вывода тела ответа на запрос Indexing API.

Отправку запроса на сервер будем выполнять через AJAX с использованием fetch() и async/await:

// асинхронная функция для отправки запроса на сервере и вывода от него ответа в #result const getURLStatus = async(url, action = 'get') => { try { const data = new FormData(); data.append('url', url); data.append('action', action); let response = await fetch('/php/indexing.php', { method: 'post', body: data }); document.querySelector('#result').innerHTML = ''; document.querySelector('#url').classList.remove('is-invalid'); document.querySelector('.invalid-feedback').textContent = ''; if (response.ok) { let result = await response.json(); if (result['result'] === 'error') { const error = result['error']; document.querySelector('#url').classList.add('is-invalid'); document.querySelector('.invalid-feedback').textContent = error; } else { document.querySelector('#result').innerHTML = `
${result.body}

`; } } } catch (error) { document.querySelector('#result').innerHTML = error; } } // при нажатии на кнопку #get-status document.querySelector('#get-status').onclick = () =< { getURLStatus(document.querySelector('#url').value); } // при нажатии на кнопку #update document.querySelector('#update').onclick = () =< { getURLStatus(document.querySelector('#url').value, 'update'); } // при нажатии на кнопку #delete document.querySelector('#delete').onclick = () =< { getURLStatus(document.querySelector('#url').value, 'delete'); }

Серверный сценарий на PHP:

 'success' ]; $url = $_POST['url']; $action = $_POST['action']; $type = $action == 'update' ? 'URL_UPDATED' : 'URL_DELETED'; if (!filter_var($url, FILTER_VALIDATE_URL)) { $data['result'] = 'error'; $data['error'] = 'URL не является корректным.'; echo json_encode($data); exit(); } $client = new Google_Client(); // file-containing-secret-key.json - секретный ключ для доступа к API Google $client->setAuthConfig('file-containing-secret-key.json'); $client->addScope('https://www.googleapis.com/auth/indexing'); $httpClient = $client->authorize(); $endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish'; if ($action == 'get') { $response = $httpClient->get('https://indexing.googleapis.com/v3/urlNotifications/metadata?url=' . urlencode($url)); } else { $content = json_encode([ 'url' => $url, 'type' => $type ]); $response = $httpClient->post($endpoint, ['body' => $content]); } $data['body'] = (string) $response->getBody(); echo json_encode($data);

Пример создания запроса на получение статуса уведомления для указанного URL:

Отправка запроса на обновление URL через Google Indexing API

Пример создания запроса на обновление URL:

Отправка запроса на обновление URL через Google Indexing API

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

Источник

How does google Index dynamic PHP pages?

Lets say I have 400 articles. How does google find all of them. When I get a sitemap generator to generate a sitemap it dosnt see them and google isnt indexing them. How do I get Google to index these pages?

How long have you waited? It can take weeks if not months for Google to index your site. As it is, there is not enough actionable detail for us to answer this question. Have you tried using Google Search Console - Fetch as Google to see if Google can see you content correctly? If not, that is your first step. As well, make sure your content is linked to. Sitemaps generally do nothing. They are primarily used for auditing whether Google can effectively crawl your site. If not, then the sitemap may be used to spot check your site. Your site should be crawlable. Do not rely on a sitemap.

and yes i used fetch with google and it fetched them but I want it to do it automatically like it does with regualr php pages

Sitemaps are not needed to get content indexed, nor do they actually help do so. See The Sitemap Paradox.

It takes weeks if not moths. Google generally does start right away, but will go according to it's own priorities. Search engines are not real-time nor can they be. It is impossible. The web is just too huge.

1 Answer 1

When I get a sitemap generator to generate a sitemap it dosnt see them

Since you are already allowing users to generate content you would seem to be in the best position to generate the sitemap; not an external tool. When the sitemap changes, you can optionally ping Google.

If an external sitemap generator is unable to find these pages then it's because the new pages aren't being linked to and your site cannot be crawled successfully.

In addition to the XML sitemap, you should probably be generating some kind of HTML index/sitemap that enables the new pages to be crawled easily.

do it automatically like it does with regualr php pages

These are regular PHP pages. article.php?id=123 might sometimes be referred to as a dynamic URL, but really there's no difference.

Sounds like a moderation nightmare?! Is this content worthy of being indexed??

Источник

Оцените статью