Our Ecommerce website utilizes search engine crawlable faceted navigation links. According to Google Webmaster Tools, googlebot has crawled but chosen not to select, hundreds of thousands of urls and we have only ~1500 products. Googlebot seems to be getting lost in the huge crawl space afforded by our faceted navigation. How can I calculate the number of unique urls that are possible with our faceted navigation?
For example, on one category page, we have 6 different attributes with a total of 51 possible values.
attributeA has 2 selectable values
attributeB has 7 selectable values
attributeC has 7 selectable values
attributeD has 4 selectable values
attributeE has 4 selectable values
attributeF has 27 selectable values
Each value selection adds a parameter and value to the url. How many possible urls are there, given that none of the attributes are multiple select (i.e. if a value from attributeB was selected, another attributeB value cannot be added to it) and the url parameters are always put in alphabetical order?
I would like a formulaic answer so that I can calculate the crawl space for every one of our category pages.
There are 42,636 possible combinations if at least one option from each attribute must be selected, or there are 134,400 if each can be left blank.
This is simply obtained by multiplying together the amount of choices available for each attribute: the number of selectable values in the first case, and the number of selectable values + 1 (for null) in the latter.
The latter seems comparable to number of urls googlebot has visited.
Related
I have a calendar that uses dynamic, dependent drop-down menus.
Each column represents a date.
In each column, there can be up to 30 evaluations written over 3 rows:
- Subject
- Group - Teacher
- Type of evaluation
At the very bottom, there is a second table that counts how many evaluations each group will have that day. However, groups are sometimes split (eg.: group 301 will split into Music and Dance classes). So in that second table, group 301 will have a total for the Dance group, and another for the music group.
If they all followed the same schedule, it'd be easy to simply have a formula like: =COUNTIF(E$4:E$113,"301").
I could use a REALLY long formula along the lines of =COUNTIF(E$4:E$113,"301")-COUNTIFS(E4:E4,"301",E3:E3,"musique")-COUNTIFS(E7:E7,"301",E6:E6,"musique")-....., but with 30 entries, this doesn't seem efficient at all.
I'm looking into INDEX, MATCH, OFFSET, etc... but can't seem to pin down the right formula. The goal of it would be to look for the group number (eg: 301), see if the previous row holds the keyword I want to subtract from that total (eg: remove 301 music's evaluation from the total for group 301 taking dance class).
I can't use VBA, because teachers will be using the online version of this form, so I have to stick to formulas.
Any help would be appreciated (file can be found here).
In order to better analyse pages over time for SEO optimisations and rankings, I've made an excel spreadsheet that pulls in the top 20 pages by impressions and compares it to the top 20 pages by clicks.
I download the report for pages from Google Search Console and copy it into a sheet called PageDataInput. In a sheet called Page it pulls the top 20 pages according to the key metric chosen, either impressions or clicks
The table for impressions works without issue because there aren't any duplicate impressions and there is a low likelihood that there will be. However, this isn't the same with clicks.
Instead of referencing the next page with the same value, it just references the same page with that click for as long as there are duplicate values. Meaning that if there are 5 pages with the same click value, it'll reference the first page 5 times and then move on to the next page.
For Impressions I've used:
=INDEX(PageDataInput!$B$2:$B$952,MATCH(1,INDEX((PageDataInput!$D$2:$D$952=LARGE(PageDataInput!$D$2:$D$952,ROWS(B$2:B2)))*(COUNTIFS(B$2:B2,PageDataInput!$D$2:$D$952)=0),),0))
For Clicks I used the same code just different column to check:
=INDEX(PageDataInput!$B$2:$B$952,MATCH(1,INDEX((PageDataInput!$C$2:$C$952=LARGE(PageDataInput!$C$2:$C$952,ROWS(I$2:I2)))*(COUNTIFS(I$2:I2,PageDataInput!$C$2:$C$952)=0),),0))
The columns are all set correctly.
To deal with duplicates with respect to the amount of clicks you can create a new column which adds an incremental amount to the number of clicks and reference this column instead.
The easiest way to do this is by adding a very small random number:
+RAND()/100000
This will not really change the results but the LARGE function will work fine as the numbers are now essentially distinct.
I want to show the product difference price in the dropdown list for configurable product (choose an option) same as in magento 1.X Thanks to all!
This is a known issue in Magento 2
The JavaScript array which is used for the picklist is generated in the method getJsonConfig() in the Class
app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php
There you see two arrays added to $config: attributes and optionPrices.
attributes seems to contain the labels that are used for the dropdown.
optionPrices contains the prices which are used to refresh the price after a customer selects a different option (with a different price associated).
This will make it very difficult to show the price difference in the dropdown as the price difference values would need to be calculated in the JavaScript.
One solution that is relatively easy to implement would be something like this, but this will show the final price of each option, not the price difference:
Create a Magento 2 plugin module that is triggered after the getJsonConfig is executed: afterGetJsonConfig()
Then use the output of the getJsonConfig in afterGetJsonConfig(): $config, this array contains attributes and priceOptions array, amongst others.
First jsondecode $config
Then walk through the attributes array to determine the available options
For each option, find the matching price in priceOptions array.
Update each option label in the attributes array by concatenating the price (correctly formatted) to the existing label.
jsonencode $config
return $config
Lets say I have the data about some kind of requests.
I have column determining request's creation date.
I wish to show the requestes Trellis'ed by this date but not the standard way.
I wish all the requests with creation date older than 2013-01-01 to be grouppped in one trellis graph.
I also would like to retain the possibility to have information on both year and quarter level as it is available for typical date column.
The image below show sth similar to what I need but the Empty section comes as the last one and I need it with different label and on the left hand side rather than as it is now on the right hand side.
Any ideas ?
my suggestion is to make two visualizations. you can duplicate the one you've already created and then limit its data by editing the properties for that vis, viewing the Data page, and using the Limit data using expression field, giving an expression like [Date Column] < "2013-01-01". you'd do the same on the second vis except use an expression like [Date Column] >= "2013-01-01".
the easiest way to change (Empty) to "something" is to not leave it empty :) you can create a calculated column with the expression If([Column] is null, "Custom Empty", [Column]) and then use that on the horizontal axis. alternatively you can hide (Empty) values from a visualization by limiting the visualization by an expression like [Column] is not null.
you can adjust the order which values are shown by going to the Edit menu and choosing Column Properties. choose the column, click the Sort Order tab, select Custom Sort Order, and click Configure.
I have a spreadsheet which is filled automatically from data in Microsoft Sharepoint. Unfortunately this data fills my location column as follows: IND;# ENG ;# USA if for example that particular input has 3 locations.
I then have drop down boxes (made via data validation) to filter the results down and give an optimum result. However when it comes to choosing location i can either choose ALL, IND, ENG, USA OR IND;# ENG ;# USA. If I chose, for instance, IND, then the options that are in multiple locations will not be returned (only the options that are in only IND will).
I was just wondering if there is any way, avoiding VBA, which will enable a choice of the individual location to return all options in this location, including the options that are availible in multiple locations.
** Please note that these multiple locations are contained within the SAME cell.
It's not possible as you have the question written. A drop down list created by data validation can only display a single result. If you chose 'IND' and wanted to show results for say 'IND' and 'IND, ENG' you would need to use something other than a drop down list or you need to do additional filtering based on the value selected down stream in your code/logic.
I'd say your best bet is to use VBA. This can be transparent from the user. When a user selects a value in the drop down list, vba can sort and filter the remaining drop down list based on what was selected (aka dependent drop downs)