[OzzModz] SEO & Index Tools [Deleted]

This addon won't affect that, though my XFOptimize addon most likely can :) Although it still does its job, feature progress on it had to slow down recently while tackling the massive updates required here on SEO & Index Tools.

Hopefully you can focus on other addons in the portfolio soon as well :)
 
common. Everyone knows "nofollow" prevents your rank from leeking to other websites (external), but internal is also important.
I get that. Any internal links that are if use are likely tone ones that get crawled anyway. So I agree, I would ignore ahrefs whinging about it.
 
  1. The bug with the erroneous message stating 'Youre missing a valid robots txt file' still remains. I assume its caused by XF not being in the root folder of the site.
  2. If no social addons are installed then it still shows the Index options. Unlike with other sections where it shows 'No compatible ecommerce addons detected'
 
Last edited:
I don't have any data from other reports on this, but the latest patch has heavily improved all indexing systems which affect sitemap generation.
No, still a bug. Disable the addon, and sitemaps are create fully/properly.

Code:
Server error log
ErrorException: Job XF:Sitemap: [E_WARNING] Attempt to read property "effective_allow_index" on null src/addons/Nulumia/SeoTools/XF/Entity/Thread.php:104
Generated by: Unknown account Feb 14, 2022 at 16:37
Stack trace
#0 src/addons/Nulumia/SeoTools/XF/Entity/Thread.php(104): XF::handlePhpError(2, '[E_WARNING] Att...', '', 104)
#1 src/XF/Sitemap/Thread.php(38): Nulumia\SeoTools\XF\Entity\Thread->isSearchEngineIndexable()
#2 src/XF/Sitemap/Builder.php(184): XF\Sitemap\Thread->isIncluded(Object(TickTackk\ChangeContentOwner\XF\Entity\Thread))
#3 src/XF/Sitemap/Builder.php(149): XF\Sitemap\Builder->writeContentTypeData('thread', 189947, 6.43439)
#4 src/XF/Sitemap/Builder.php(84): XF\Sitemap\Builder->buildType('thread', 6.43439)
#5 src/XF/Job/Sitemap.php(27): XF\Sitemap\Builder->build(6.43439)
#6 src/XF/Job/Manager.php(260): XF\Job\Sitemap->run(8)
#7 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#9 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#10 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 cmd.php(15): XF\Cli\Runner->run()
#16 {main}
Request state
array(1) {
  ["cli"] => string(45) "cmd.php --quiet xf:run-jobs"
}
 
  1. The bug with the erroneous message stating 'Youre missing a valid robots txt file' still remains. I assume its caused by XF not being in the root folder of the site.
  2. If no social addons are installed then it still shows the Index options. Unlike with other sections where it shows 'No compatible ecommerce addons detected'
Fixed in incoming release
Addon options will now hide
I send you a PM Saturday hope you can look into it.
I'll get back to you asap!
No, still a bug. Disable the addon, and sitemaps are create fully/properly.

Code:
Server error log
ErrorException: Job XF:Sitemap: [E_WARNING] Attempt to read property "effective_allow_index" on null src/addons/Nulumia/SeoTools/XF/Entity/Thread.php:104
Generated by: Unknown account Feb 14, 2022 at 16:37
Stack trace
#0 src/addons/Nulumia/SeoTools/XF/Entity/Thread.php(104): XF::handlePhpError(2, '[E_WARNING] Att...', '', 104)
#1 src/XF/Sitemap/Thread.php(38): Nulumia\SeoTools\XF\Entity\Thread->isSearchEngineIndexable()
#2 src/XF/Sitemap/Builder.php(184): XF\Sitemap\Thread->isIncluded(Object(TickTackk\ChangeContentOwner\XF\Entity\Thread))
#3 src/XF/Sitemap/Builder.php(149): XF\Sitemap\Builder->writeContentTypeData('thread', 189947, 6.43439)
#4 src/XF/Sitemap/Builder.php(84): XF\Sitemap\Builder->buildType('thread', 6.43439)
#5 src/XF/Job/Sitemap.php(27): XF\Sitemap\Builder->build(6.43439)
#6 src/XF/Job/Manager.php(260): XF\Job\Sitemap->run(8)
#7 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#9 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#10 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 cmd.php(15): XF\Cli\Runner->run()
#16 {main}
Request state
array(1) {
  ["cli"] => string(45) "cmd.php --quiet xf:run-jobs"
}
Thank you for that error report, helped locked down a situational check which could cause that. Now patched in incoming release.
 
Very weird bug:
  • SEO add-on installed
  • Create a new page node and assign it to a menu item (navigation section)
  • If you visit the new page, the menu item is not selected
  • Uninstall the SEO add-on
  • Menu item is still not selected
  • Create a new page node and assign it to a menu item
  • Now the selection works
 
If you publish regular articles that are provided in xenforo, then the fields for filling in meta tags when writing an article are not displayed. To fill them out, you need to click edit an already finished article.
 
Nulumia updated SEO & Index Tools with a new update entry:

Robots.txt - Bugfixes - Addon settings

Miscellaneous
  • Improved phrasing, changed several hard-coded labels to phrases
  • Fixed a rare bug which could cause an error on sitemap creation
  • Improved the robots.txt recommendation system
    • Will now more accurately look for the robots.txt field in relation to the Xenforo installlation
    • If Xenforo is installed to a sub-directory and not to the root of the site, there is now an added option to specify the relative path to the robots.txt file (available via SEO...

Read the rest of this update entry...
 
Server error log ErrorException: Job XF:Sitemap: [E_WARNING] Attempt to read property "effective_allow_index" on null src/addons/Nulumia/SeoTools/XF/Entity/Thread.php:104
@Mouth After a closer look, since forums are simply a variation of the AbstractNode entity and require a node relation, the fact that it's getting null when trying to access the forum's node is strange. Nevertheless, these entries will now be skipped instead of throwing an error. I believe that's probably for the best as likely there's something misconfigured, or perhaps an orphaned or transient entity somewhere.

I can revisit this if needed and just sitemap the thread instead.
Very weird bug:
  • SEO add-on installed
  • Create a new page node and assign it to a menu item (navigation section)
  • If you visit the new page, the menu item is not selected
  • Uninstall the SEO add-on
  • Menu item is still not selected
  • Create a new page node and assign it to a menu item
  • Now the selection works
I believe I've replicated this and looking into it. Are you referring to the "Navigation section" option on the Page creation page itself, right under where you assign the parent node? Or are you doing this somewhere else like Setup -> Public Navigation?
If you publish regular articles that are provided in xenforo, then the fields for filling in meta tags when writing an article are not displayed. To fill them out, you need to click edit an already finished article.
Hmm, can you specify where you're doing this? As I checked that the native Xenforo "Article Forum" works the same as posting threads which still shows the meta fields. I can include a fix for next release.
 

An update on features in progress:​

  • I will probably make the robots.txt function just look backward each directory till the root directory to find the file, instead of having you specify a relative path. When that's implemented and works, I'll just remove the relative path option. It'll just work automatic and nothing will need to be done further.
  • Scan the actual contents of the robots.txt file, and look for conflicts with the currently set indexing options. These will then be listed on the recommendations page.
  • A new "Metrics" page under Admin -> SEO. Will list overall big picture information such as currently connected addons, number of pages/threads that are indexed, number of threads with custom meta fields set, perhaps even with historical graphs such as what you find on the Admin home page. These will likely be cached and rebuilt with either existing Tools -Rebuild Caches or a new entry. I think this is a very handy addition to working in Xenforo but needing to visit Google Search Console to actually see those items. Keep in mind that the two would never sync as Google will always hold the "master number" of their own search index, while a similar feature in Xenforo would be highly targeted (to threads or resources etc).
  • Still working on the SEO staffbar popup link, which will hold much more valuable data about the SEO features of a given page, why it is or is not indexed, etc, without having to play the guessing game
  • More social features like specifying Twitter card fields etc
  • Changing additional schema tags which are hard set in Xenforo and addons like XFMG and XFRM
 
Would be nice to have recommendations for what to add to the robot.txt, or to have a default one that can be added for sites that do not have one yet.
 
Nulumia updated SEO & Index Tools with a new update
RC9 still causes an error and stops sitemap rebuild ...

Code:
Server error log
ErrorException: [E_WARNING] Attempt to read property "effective_allow_index" on null src/addons/Nulumia/SeoTools/XF/Entity/Thread.php:104
Generated by: Unknown account Feb 18, 2022 at 13:29
Stack trace
#0 src/addons/Nulumia/SeoTools/XF/Entity/Thread.php(104): XF::handlePhpError(2, '[E_WARNING] Att...', '...', 104)
#1 src/XF/Sitemap/Thread.php(38): Nulumia\SeoTools\XF\Entity\Thread->isSearchEngineIndexable()
#2 src/XF/Sitemap/Builder.php(184): XF\Sitemap\Thread->isIncluded(Object(TickTackk\ChangeContentOwner\XF\Entity\Thread))
#3 src/XF/Sitemap/Builder.php(149): XF\Sitemap\Builder->writeContentTypeData('thread', 195317, 6.33484)
#4 src/XF/Sitemap/Builder.php(84): XF\Sitemap\Builder->buildType('thread', 6.33484)
#5 src/XF/Job/Sitemap.php(27): XF\Sitemap\Builder->build(6.33484)
#6 src/XF/Job/Manager.php(260): XF\Job\Sitemap->run(8)
#7 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(153): XF\Job\Manager->runJobEntry(Array, 8)
#9 src/XF/Cli/Command/JobRunnerTrait.php(32): XF\Job\Manager->runUnique('xfRebuildJob-si...', 8)
#10 src/XF/Cli/Command/JobRunnerTrait.php(15): XF\Cli\Command\Rebuild\AbstractRebuildCommand->runJob('xfRebuildJob-si...', Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 src/XF/Cli/Command/Rebuild/AbstractRebuildCommand.php(96): XF\Cli\Command\Rebuild\AbstractRebuildCommand->setupAndRunJob('xfRebuildJob-si...', 'XF:Sitemap', Array, Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\Rebuild\AbstractRebuildCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\Rebuild\RebuildSitemap), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 cmd.php(15): XF\Cli\Runner->run()
#18 {main}
Request state
array(1) {
  ["cli"] => string(26) "cmd.php xf-rebuild:sitemap"
}

@Mouth After a closer look, since forums are simply a variation of the AbstractNode entity and require a node relation, the fact that it's getting null when trying to access the forum's node is strange. Nevertheless, these entries will now be skipped instead of throwing an error. I believe that's probably for the best as likely there's something misconfigured, or perhaps an orphaned or transient entity somewhere.

I can revisit this if needed and just sitemap the thread instead.
Sitemap {re}builds without error when SEOTools is disabled. Enabled, it throws the error and stops sitemap being full created ...

Code:
# php cmd.php xf-rebuild:sitemap
Rebuilding... Sitemap (Threads 68991)
Rebuilding... Sitemap (Threads 93143)
Rebuilding... Sitemap (Threads 119913)
Rebuilding... Sitemap (Threads 174495)

In Thread.php line 104:
                                                                        
  [E_WARNING] Attempt to read property "effective_allow_index" on null 
                                                                        

xf-rebuild:sitemap [--log-queries LOG-QUERIES] [-b|--batch BATCH] [--resume]

#
 
RC9 still causes an error and stops sitemap rebuild ...

Code:
Server error log
ErrorException: [E_WARNING] Attempt to read property "effective_allow_index" on null src/addons/Nulumia/SeoTools/XF/Entity/Thread.php:104
Generated by: Unknown account Feb 18, 2022 at 13:29
Stack trace
#0 src/addons/Nulumia/SeoTools/XF/Entity/Thread.php(104): XF::handlePhpError(2, '[E_WARNING] Att...', '...', 104)
#1 src/XF/Sitemap/Thread.php(38): Nulumia\SeoTools\XF\Entity\Thread->isSearchEngineIndexable()
#2 src/XF/Sitemap/Builder.php(184): XF\Sitemap\Thread->isIncluded(Object(TickTackk\ChangeContentOwner\XF\Entity\Thread))
#3 src/XF/Sitemap/Builder.php(149): XF\Sitemap\Builder->writeContentTypeData('thread', 195317, 6.33484)
#4 src/XF/Sitemap/Builder.php(84): XF\Sitemap\Builder->buildType('thread', 6.33484)
#5 src/XF/Job/Sitemap.php(27): XF\Sitemap\Builder->build(6.33484)
#6 src/XF/Job/Manager.php(260): XF\Job\Sitemap->run(8)
#7 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(153): XF\Job\Manager->runJobEntry(Array, 8)
#9 src/XF/Cli/Command/JobRunnerTrait.php(32): XF\Job\Manager->runUnique('xfRebuildJob-si...', 8)
#10 src/XF/Cli/Command/JobRunnerTrait.php(15): XF\Cli\Command\Rebuild\AbstractRebuildCommand->runJob('xfRebuildJob-si...', Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 src/XF/Cli/Command/Rebuild/AbstractRebuildCommand.php(96): XF\Cli\Command\Rebuild\AbstractRebuildCommand->setupAndRunJob('xfRebuildJob-si...', 'XF:Sitemap', Array, Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\Rebuild\AbstractRebuildCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\Rebuild\RebuildSitemap), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 cmd.php(15): XF\Cli\Runner->run()
#18 {main}
Request state
array(1) {
  ["cli"] => string(26) "cmd.php xf-rebuild:sitemap"
}


Sitemap {re}builds without error when SEOTools is disabled. Enabled, it throws the error and stops sitemap being full created ...

Code:
# php cmd.php xf-rebuild:sitemap
Rebuilding... Sitemap (Threads 68991)
Rebuilding... Sitemap (Threads 93143)
Rebuilding... Sitemap (Threads 119913)
Rebuilding... Sitemap (Threads 174495)

In Thread.php line 104:
                                                                       
  [E_WARNING] Attempt to read property "effective_allow_index" on null
                                                                       

xf-rebuild:sitemap [--log-queries LOG-QUERIES] [-b|--batch BATCH] [--resume]

#
Will attach you a private build tonight before releasing a patch, since I haven't seen any other reports of this yet.

I'm also wondering in any of your logs if you're able to see the thread or forum in question and check if there's anything odd with those?
 
Hmm, can you specify where you're doing this? As I checked that the native Xenforo "Article Forum" works the same as posting threads which still shows the meta fields. I can include a fix for next release.

These are all the fields that I see when creating articles. If, when publishing, I click edit articles, then the seo fields will appear. using uix style

2022-02-18_06-25-33.webp
 
I'm also wondering in any of your logs if you're able to see the thread or forum in question and check if there's anything odd with those?
Sorry, no. The errors I posted is the full details given, and doesn't give any indication of which thread/node causes it.
 
@Nulumia

LogicException: xf_xa_ams_category: Cannot add values to a column when existing values are not loaded/do not apply in src/XF/Db/Schema/Column.php at line 204
  1. XF\Db\Schema\Column->addValues() in src/addons/Nulumia/SeoTools/Install/InstallDataTrait.php at line 291
  2. Nulumia\SeoTools\Setup->Nulumia\SeoTools\Install\{closure}() in src/XF/Db/SchemaManager.php at line 147
  3. XF\Db\SchemaManager->alterTable() in src/addons/Nulumia/SeoTools/Setup.php at line 101
  4. Nulumia\SeoTools\Setup->installStep4() in src/XF/AddOn/StepRunnerInstallTrait.php at line 62
  5. Nulumia\SeoTools\Setup->installStepRunner() in src/XF/AddOn/StepRunnerInstallTrait.php at line 29
  6. Nulumia\SeoTools\Setup->install() in src/XF/Admin/Controller/AddOn.php at line 419
  7. XF\Admin\Controller\AddOn->actionInstall() in src/XF/Mvc/Dispatcher.php at line 352
  8. XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 259
  9. XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 115
  10. XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 57
  11. XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2351
  12. XF\App->run() in src/XF.php at line 517
  13. XF::runApp() in admin.php at line 13
 
Top Bottom