In this guide, we will learn how can we change the robots of a particular page.
There are several options for robots available that you can choose from:
- INDEX, FOLLOW – If you want web crawlers to index a page and follow the links on that page.
- NOINDEX, FOLLOW – If you don’t want web crawlers to index a page but want them to follow the links on that page.
- INDEX, NOFOLLOW – If you want web crawlers to index a page and don’t want them to follow the links on that page.
- NOINDEX, NOFOLLOW – If you want web crawlers neither to index a page nor to follow the links on that page.
Now let’s see how we can set NOINDEX, NOFOLLOW on a particular page programmatically.
Step 1 – You need to create di.xml in the below path:
app/code/Vendor/ModuleName/etc/frontend/di.xml
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Framework\View\Page\Config\Renderer">
<plugin name="seoRender" type="Webkul\Demo\Plugin\Robots"/>
</type>
</config>
Step 2 – Now you need to create Robots.php in the below path:
app/code/Vendor/ModuleName/Plugin/Robots.php
And, add the below code
<?php
namespace Webkul\Demo\Plugin;
use Magento\Framework\App\Request\Http;
use Magento\Framework\View\Page\Config as PageConfig;
use Magento\Framework\View\Page\Config\Renderer;
class Robots
{
protected $pageConfig;
protected $request;
/**
*
* @param PageConfig $pageConfig
* @param Http $request
*/
public function __construct(
PageConfig $pageConfig,
Http $request
) {
$this->pageConfig = $pageConfig;
$this->request = $request;
}
/**
* Before Render function
*
* @param Renderer $subject
*/
public function beforeRenderMetadata(Renderer $subject)
{
$fullActionName = $this->request->getFullActionName();
if ($fullActionName == 'catalog_product_view') {
$this->pageConfig->setMetadata('robots', 'NOINDEX,NOFOLLOW');
}
}
}
That’s all about the setting NOINDEX, NOFOLLOW on specific page . If you have any questions please comment below, and we will try to respond to you.
Happy Coding!!
Be the first to comment.