[OzzModz] SEO & Index Tools [Deleted]

Schema Improvement System​

An overview on schema related work for those interested. I earlier replied to this thread regarding the discrepency between ranking non-thread content (resources, etc) vs threads. I've since encountered the same issue on a very large and clear scale in a private project, and have been digging into the causes of this in Xenforo.

One of the factors I've turned up is what may be non-ideal Schema.org implementation within XF and addons. While there is currently schema built-in, uses of such components as Resource Manager, articles, blogs etc in either 1. Custom implementations (stretching the addon to fit a purpose slightly different than what it was intended) or 2. Not fully optimizing the schema to fit your use case, may have an adverse effect.

Google & schema
Schema.org markup is not a direct ranking factor, as in it's not weighed directly in the algorithms (yet). However, schema markup does directly affect your Google rich results and helps Google better understand your pages and content, which in turn may affect whether it believes showing a search result to a visitor is the correct choice. This means schema has an indirect impact on your rankings, and, in my current belief, possibly more negative impact if you get it wrong, than positive.

Focusing on that last bit, I have a current hunch within Xenforo that not optimizing your schema, or having badly configured or conflicting schema can have a drastic negative effect on your search results, and is a far more important factor than the benefit of having good schema in general.

I recently identified some major schema conflicts on a private case which was nearly tossing out an entire section of their site. Fixes are already showing an influx of positive trends in Search Console.

Regardless of good vs bad, it's important to have it correct either way.

Solutions?
I've already blueprinted an entire schema enhancement system going into this addon, with some of the following highlights:
  • Enhanced Schema
    Enabling this option will augment all existing schema within Xenforo with full range of recommended and supported tags
  • Full, comprehensive missing schema
    I am sweeping all across Xenforo and supported addons to implement compatibile schema markup
  • Branding & Organization
    A full brand setup page which will render out schema about your site brand & identity, such as on the homepage. Integrates traits such as "SameAs" to reinforce social signals and connect other references to your site.
  • Purpose-based syntax
    Supported addons will have schema setup added directly to their main settings (Ie Resource Manager, AMS, etc). For example, you'll be able to change the main schema type of resources to things like Article, CreativeWork, FAQPage, NewsArticle, etc. As such changes support and/or disallow certain tags, the addon will automatically adjust syntax accordingly.
  • Conflict-readiness
    Did you know Google decides its own rules on how Schema.org tags can or can't be used? That's right, Google overrides the official implementation of Schema.org itself and may flag you for errors and fail validation if you're not "in the know" of Google's policy shifts. The addon will also pull in and adjust these changes so you will not be flagged.
  • Inheritance and per-content settings
    Eventually, schema additions will be set at the category level as well, and inherited similar to category indexing. As such, manual schema settings will also be provided on a per-content basis, such as setting the @Type, Name, Image, etc directly on a thread, resource or article.
These changes should help drastically improve and fix Google ranking issues in some situations, as results from private work are already very promising.
 
Just installed the latest alpha and get this t the top of the Options page, everything else appears to be working

1647786515993.webp
 
Thank you for the detailed explanation. Extremely odd as there's no functionality that I'm aware of that could interrupt that area. However I'll drill down and replicate.
Seeing this as well on UI.X2, any node that's a page node won't be selected when viewing that page. Seems to default to the Forums node as being selected.
 
Just installed the latest alpha and get this t the top of the Options page, everything else appears to be working

View attachment 266191
Now in incoming patch
Seeing this as well on UI.X2, any node that's a page node won't be selected when viewing that page. Seems to default to the Forums node as being selected.
The issue was patched, but seems like a rebuild for nodes should help previous issues. Next update will trigger one during upgrade process and node_id's should be resolved.
 
No, only indexable threads get added to the sitemap. The Sitemap Handlers for both Nodes and Threads have a function isSearchEngineIndexable(), which comes into play to determine whether a Node or Thread gets added to the sitemap.
This is correct. Just to mention again for everyone's awareness, Xenforo runs the index and criteria fields tot the Forum entity. This addon replicates it, along with augmented options (inheritance and global defaults) onto the Node entity instead - so indexing features can also work on Categories, Pages, etc. As an additional note, this addon ports back settings as best as possible upon uninstall, with non-compatible features defaulting to just "allow". I am also still making improvements to this aspect.
@Nulumia - I know you're overwhelmed but if you ever get a chance can you help me with this: https://xenforo.com/community/threa...tatement-php-at-line-230.204246/#post-1566058
If you've installed this addon in the past, it used to run a column with that name. I will contact you via PM to help with this.
If IndexNow could be sewn into this plugin, it would be just super, but the author disappeared
Definitely open to implementing something similar.
I'm getting this error when trying to install

Code:
XF\Db\Exception: MySQL statement prepare error [1054]: Unknown column 'node.nl_seo_allow_index' in 'field list' in src/XF/Db/AbstractStatement.php at line 230

I'm running the latest versions of XF, Bob's AMS and this plug-in
Trying to recreate this issue and will let you know. Could you supply the full error print-out here or through PM?
 
This is correct. Just to mention again for everyone's awareness, Xenforo runs the index and criteria fields tot the Forum entity. This addon replicates it, along with augmented options (inheritance and global defaults) onto the Node entity instead - so indexing features can also work on Categories, Pages, etc. As an additional note, this addon ports back settings as best as possible upon uninstall, with non-compatible features defaulting to just "allow". I am also still making improvements to this aspect.

If you've installed this addon in the past, it used to run a column with that name. I will contact you via PM to help with this.

Definitely open to implementing something similar.

Trying to recreate this issue and will let you know. Could you supply the full error print-out here or through PM?
This is the best add on I have ever used. Thanks for your hard work!

I rashly want to be able to make some links do follow. Individual links, not by usergroup. Is that something you could incorporate?
 
Hi @nicodak, I understand and agree with everything you're saying here, and I'm taking a few steps to rectify things in this area. Including, hiring another assistant to offload tasks and inquiries, implementing a priority system and high alerts for priority bugs/tickets.

I know this is no excuse but this addon development far outpaced anything expected, and forced many days already with 14-18 non-stop coding sessions, coordinating testing and organizing feedback etc. This is mainly due to the overwhelming amount of requests, suggestions, bug reports, and feature changes/additions, and obviously with bug reports being highest priority. I am only mentioning this, to indicate lessened support is currently a result of sheer exhaustion & time strain from the development.

I realize that may sound like a "negative sign" for ongoing work, but I know this phase of the addon is simply the most difficult and will of course push through it, while making support improvements. I will also as per your mention, be implementing auto-response and timeframe indications for issues. Thank you for your candid feedback.
Thank you. I can completely understand that you have embarked on something that is beyond you now, despite finding the time to propose new add-ons here.

But so how much time should I expect now for an answer? Does it seem like the best solution to you to enter into a process of recruiting a person who will manage your tickets rather than taking a few hours (I don't know how many are waiting) to answer them? By insisting in this way and by publicly pointing out this weakness at Nulumia, I suspect that you will not give me a gift about my ticket, but really the first thing I would have done with a client like me is to process his ticket in order that he stop complaining publicly and try to solve his problem which would be beneficial for everyone.

Since I'm more likely to get an answer here than on your ticket system, too bad I ask you the question again here, and too bad if the members of XF will tell me all that for that, you only had to think about before buying this add-on:
  • I bought your add-on on February 23rd and after installation I quickly realized that it was not something made for me, my poor level of English (here I am writing to you translated by google) and my very poor understanding of SEO did not allow me to understand how the add-on works and I did not manage to adjust any of the countless available options other than by chance. 2 hours maximum after my purchase I therefore opened a ticket to ask you for a refund (despite the warning during the purchase stating that refunds were not available if i remember well) specifying that I had a strong feeling of having wasting my community's money (60 members) and therefore being very embarrassed with them. I'm wrong, it's a mistake on my part I agree very frankly. So the only thing I've been asking you for 4 weeks and to tell me if it's possible to make an exception or not, the question is simple and your answer is even simpler. I just want to hear your likely NO and move on. Thank you.
 
Trying to recreate this issue and will let you know. Could you supply the full error print-out here or through PM?

Code:
 XF\Db\Exception: MySQL statement prepare error [1054]: Unknown column 'node.nl_seo_allow_index' in 'field list' in src/XF/Db/AbstractStatement.php at line 230
XF\Db\AbstractStatement->getException() in src/XF/Db/Mysqli/Statement.php at line 198
XF\Db\Mysqli\Statement->getException() in src/XF/Db/Mysqli/Statement.php at line 41
XF\Db\Mysqli\Statement->prepare() in src/XF/Db/Mysqli/Statement.php at line 56
XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 96
XF\Db\AbstractAdapter->query() in src/addons/Nulumia/SeoTools/Setup.php at line 115
Nulumia\SeoTools\Setup->installStep5() in src/XF/AddOn/StepRunnerInstallTrait.php at line 62
Nulumia\SeoTools\Setup->installStepRunner() in src/XF/AddOn/StepRunnerInstallTrait.php at line 29
Nulumia\SeoTools\Setup->install() in src/XF/Admin/Controller/AddOn.php at line 419
XF\Admin\Controller\AddOn->actionInstall() in src/XF/Mvc/Dispatcher.php at line 352
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 259
XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 115
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 57
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2351
XF\App->run() in src/XF.php at line 517
XF::runApp() in admin.php at line 13
 
Nulumia updated SEO & Index Tools with a new update entry:

Bugfixes - Schema Improvements - New Extended Breadcrumb System

Changelog​

Miscellaneous
  • Improved phrasing, removed hard-coded labels, fixed some missing phrases
  • Fixed several navigation links in admin SEO pages
  • Added detection and removal of several legacy columns if a user had installed a very early alpha phase edition
  • Several sitemap handler tweaks
  • Fixed a bug where navigation section or style ID overrides would not apply on child nodes. The addon will now rebuild these settings upon upgrade.
...

Read the rest of this update entry...
 
I just want to hear your likely NO and move on.

Never a no answer, and I give a lot of free time behind the scenes to many in need of help. Please check PMs for response on all your custom inquiries. On another topic, I am definitely interested in getting the addon translated in the near future to assist with non-English speakers.

@Grant I'm wondering if there was a failed/aborted installation at some point judging by that report. Thanks for supplying. I may need to take a closer look so will reach out via PM.

This is the best add on I have ever used. Thanks for your hard work!

I rashly want to be able to make some links do follow. Individual links, not by usergroup. Is that something you could incorporate?
Thanks, not out of the difficult phase yet and there's still a huge amount of work to go! 😰

What kind of links are you specifying - for example embedded in posts, links as part of the Xenforo interface (navigation, templates and front-end) or custom written links? I'm sure plenty can be done.
 
Last edited:

URL Rewrite System (possible feature)​

I just managed the other day to pull off a very early and rough URL structural rewrite system in Xenforo, which is a huge breakthrough. So far, we have the Routes system, which can allow us to change something like dbtech-ecommerce/categories/ to store/categories/. While this is a popular and useful option, URL structure in Xenforo does not allow such customization.

In the Wordpress world, core options and some plugins allow full control over your URL hierarchy, where URL path matches the structure of your website. However, we're missing this level of customization in Xenforo.

Let's take the following example, where we click in order through Home; the forum list; a category; a forum; then finally a thread.

The URLs will appear like these each step:

Confusing..​

  1. sitename.com
  2. sitename.com/forums/
  3. sitename.com/categories/main-category.1/
  4. sitename.com/forums/main-forum.2/
  5. sitename.com/threads/name-of-some-thread.27/
As you can see, the structure of these make no logical sense as we jump around. "But, the on-page breadcrumb will indicate where you're at, so it's not a problem!" That's somewhat true, at least with the new Extended Breadcrumb feature which was just added into this addon. However, what if we could make the URL path, website structure, and breadcrumb all match?

With a new rewrite system, the following URL path can be achieved instead:

Hierarchical​

  • sitename.com
  • sitename.com/forums/
  • sitename.com/forums/main-category.1/
  • sitename.com/forums/main-category/main-forum.2/
  • sitename.com/forums/main-category/main-forum/name-of-some-thread.27/
There is some debate over the pros and cons of hierarchical URLs, and whether it brings SEO benefit. Thus, any implementation of this idea would allow some level of customization, like choosing which level of structure should be rewritten (like categories, but leave /threads/thread-name/ patterns as normal).

For now this is just an idea being looked into.
 

URL Rewrite System (possible feature)​

I just managed the other day to pull off a very early and rough URL structural rewrite system in Xenforo, which is a huge breakthrough. So far, we have the Routes system, which can allow us to change something like dbtech-ecommerce/categories/ to store/categories/. While this is a popular and useful option, URL structure in Xenforo does not allow such customization.

In the Wordpress world, core options and some plugins allow full control over your URL hierarchy, where URL path matches the structure of your website. However, we're missing this level of customization in Xenforo.

Let's take the following example, where we click in order through Home; the forum list; a category; a forum; then finally a thread.

The URLs will appear like these each step:

Confusing..​

  1. sitename.com
  2. sitename.com/forums/
  3. sitename.com/categories/main-category.1/
  4. sitename.com/forums/main-forum.2/
  5. sitename.com/threads/name-of-some-thread.27/
As you can see, the structure of these make no logical sense as we jump around. "But, the on-page breadcrumb will indicate where you're at, so it's not a problem!" That's somewhat true, at least with the new Extended Breadcrumb feature which was just added into this addon. However, what if we could make the URL path, website structure, and breadcrumb all match?

With a new rewrite system, the following URL path can be achieved instead:

Hierarchical​

  • sitename.com
  • sitename.com/forums/
  • sitename.com/forums/main-category.1/
  • sitename.com/forums/main-category/main-forum.2/
  • sitename.com/forums/main-category/main-forum/name-of-some-thread.27/
There is some debate over the pros and cons of hierarchical URLs, and whether it brings SEO benefit. Thus, any implementation of this idea would allow some level of customization, like choosing which level of structure should be rewritten (like categories, but leave /threads/thread-name/ patterns as normal).

For now this is just an idea being looked into.
That would be great as long as you add a built-in redirect system.
 
That would be great as long as you add a built-in redirect system.

Exactly my thought. Esp. if it comes to this:

sitename.com/threads/name-of-some-thread.27/

Might be unlogical concerning structure, but very helpful for SEO if you have to move a thread from here to there within your board. The link does not change and no redirect (including a possible delay) is needed.
 
  • sitename.com/forums/main-category/main-forum/name-of-some-thread.27/
There is some debate over the pros and cons of hierarchical URLs, and whether it brings SEO benefit.
In many cases I think the second level /forums/ is not necessary.

If a site consists of just a forum (ie the forum is not just a smaller part of a main website) then it certainly doesn't need that in the hierarchy.

I certainly agree it makes no sense to have /threads/ or /pages/ etc. Wordpress doesn't have /posts/ or /pages/. On my wordpress site I have sometimes used a plugin to change a page to a post and the last thing I want is to have to make yet another redirect.

On my xenforo forum, once the article format was available it made perfect sense to get rid of resource manager as my resources were mostly tutorials. I had to create redirects to change /resources/ to threads/
 
Never a no answer, and I give a lot of free time behind the scenes to many in need of help. Please check PMs for response on all your custom inquiries. On another topic, I am definitely interested in getting the addon translated in the near future to assist with non-English speakers.
Thank you for your PM.
 
@Nulumia I'm following this project and like your work. I also purchased this one.
You are adding so many new features... shouldn't you first focus on releasing a stable version and maybe introduce a feature lock?
I'm scared installing the current version and waiting patiently for a stable release, but every time I see new stuff being added. This will be a never ending story.
 
Hello, lot of server error like this
More than 130 errors like this in few minutes...
  • ErrorException: [E_WARNING] Attempt to read property "title" on null
  • src/addons/Nulumia/SeoTools/XFMG/Entity/MediaItem.php:30
  • Généré par: Compte inconnu
  • le 24 Mars 2022 à 19:05
#0 src/addons/Nulumia/SeoTools/XFMG/Entity/MediaItem.php(30): XF::handlePhpError(2, '[E_WARNING] Att...', '/srv/data/web/v...', 30)
#1 src/addons/Nulumia/SeoTools/XFMG/Pub/Controller/Media.php(34): Nulumia\SeoTools\XFMG\Entity\MediaItem->getTitleFallback()
#2 src/XF/Mvc/Dispatcher.php(352): Nulumia\SeoTools\XFMG\Pub\Controller\Media->actionView(Object(XF\Mvc\ParameterBag))
#3 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XFMG\\Pub\\Contro...', 'View', Object(XF\Mvc\RouteMatch), Object(Nulumia\SeoTools\XFMG\Pub\Controller\Media), Object(XF\Mvc\Reply\Reroute))
#4 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(Nulumia\SeoTools\XFMG\Pub\Controller\Media), Object(XF\Mvc\Reply\Reroute))
#5 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#6 src/XF/App.php(2351): XF\Mvc\Dispatcher->run()
#7 src/XF.php(517): XF\App->run()
#8 index.php(20): XF::runApp('XF\\Pub\\App')
#9 {main}
array(4) {
["url"] => string(55) "/mediatheque/head-start-%C2%A9-dhritiman-mukherjee.626/"
["referrer"] => bool(false)
["_GET"] => array(0) {
}
["_POST"] => array(0) {
}
}
 
Last edited:
Also, there is a bug for Google snippet preview for XFMG et XFRM, same snippet for both, It's the same one that is displayed for both (that of XFMG)

Capture web_24-3-2022_201117_regionalis.fr.jpeg

Capture web_24-3-2022_201139_regionalis.fr.jpeg
 
Last edited:
There is something weird for index permissions for nodes.
if a category is set to NO INDEX and a node is set to inherit this is what it displays for the concerned node:

Capture web_24-3-2022_201739_regionalis.fr.webp

But this seems correct
Capture web_24-3-2022_202040_regionalis.fr.webp
 
Top Bottom